¿Cómo justificamos la selección de un algoritmo de aprendizaje particular para la clasificación?

Por lo que sé y he experimentado (que podría estar mal en caso de que mi cerebro no captara el conjunto correcto de características para aprender 😉), la respuesta a esta pregunta depende de muchos factores.

La interpretabilidad, la precisión, la tasa de convergencia, los supuestos del modelo y la naturaleza de los datos en sí mismos son los factores clave (puede que haya más que probablemente me falte) que se tienen en cuenta al decidir el algoritmo de aprendizaje para la clasificación.

Interpretabilidad : existen ciertos algoritmos como árboles de decisión (y quizás bosques aleatorios) que generan modelos que son fácilmente interpretables. En ciertas situaciones, descubrirá que desea saber qué está haciendo su modelo con los datos para tomar mejores decisiones. La regresión logística, SVM, redes neuronales, etc., se retrasan en este sentido ya que son como un “recuadro negro” para el usuario Sin embargo, los árboles de decisión a menudo tienen un precio: sobreajuste.

Precisión : cada algoritmo (debido a sus supuestos) proporciona una precisión diferente para diferentes escenarios. Con mayor frecuencia, el objetivo es maximizar la precisión, pero cuando se presentan conjuntos de datos que contienen clases altamente desequilibradas (lo que significa que una clase tiene una densidad mucho más alta en comparación con la otra clase), a menudo el objetivo principal es maximizar la clasificación correcta de la clase que ocurre menos . En tales casos, la precisión general no es la máxima prioridad. Por lo tanto, los algoritmos como la regresión logística que tienden a maximizar la precisión general no se pueden usar en tales circunstancias, mientras que los árboles de decisión pueden deberse a su capacidad de incorporar sesgo de clase (siempre que conozca uno, al menos aproximadamente)

Suposiciones del modelo : la regresión logística (en su forma pura) supone que los datos son linealmente separables, los árboles de decisión no asumen que los datos son linealmente separables, sino que suponen que los límites de decisión se encuentran paralelos a los ejes de coordenadas, los bosques aleatorios suponen que el rendimiento promedio en múltiples clasificadores aleatorios es una apuesta más segura (por lo que recuerdo). Por lo tanto, realmente depende de los supuestos que serán un buen augurio con los datos que tiene.

Tasa de convergencia : ciertos algoritmos como SVM, redes neuronales y bosques aleatorios tienen una tasa de convergencia más lenta en comparación con otros algoritmos como la regresión logística y los árboles de decisión. Esto puede no ser el caso a menudo, pero si el tamaño de su conjunto de datos es enorme y no desea esperar horas para obtener el modelo aprendido, puede cambiar la velocidad con precisión.

Recursos de infraestructura disponibles: Ciertos algoritmos tienden a ser más intensivos en CPU y / o memoria que los demás. Esto se puede atribuir a una gran cantidad de cálculos que hacen o al número de resultados intermedios que intentan almacenar. Por ejemplo, si está trabajando en una sola máquina con CPU y memoria modestas, y el tamaño del conjunto de datos es bastante grande, podría arriesgarse a consumir toda la memoria de su máquina y el algoritmo fallará eventualmente ya que ya no puede almacenar los resultados intermedios en cualquier sitio. En tales casos, es posible que desee un algoritmo que tenga requisitos mínimos de almacenamiento, o puede que desee una poda muy gruesa para que aprenda al menos algo de los datos dados en su máquina (humilde). Dicho esto, si no te preocupan los recursos a tu disposición, este factor no jugaría ningún papel en la selección del algoritmo.

Naturaleza de los datos : este es el factor más importante para decidir qué algoritmo implementar. Ya hemos discutido algunos casos en los puntos anteriores donde vimos que los datos disponibles a menudo son decisivos en la elección de un algoritmo. Permítanme agregarle un par de puntos más. (a) Cuando la mayoría de las características en sus datos son de naturaleza categórica, los algoritmos como los árboles a menudo se consideran una buena opción, ya que proporcionan modelos fácilmente interpretables. (b) Cuando tiene muchas características en sus datos en comparación con el número de puntos de datos (este suele ser el caso en el análisis de texto), los árboles a menudo no son una buena opción. Simplemente no podrá generalizar bien con árboles en este caso. Otros algoritmos como la regresión logística, SVM se generalizarán mucho mejor en este caso.

Puedo estar olvidando algunos otros factores, o tal vez no estoy al tanto de otros factores sutiles. Además, no proporciono ningún respaldo teórico para ninguno de los puntos que mencioné anteriormente, ya que estos puntos son el resultado de mi simple observación al experimentar con estos algoritmos. Esperamos que te sea útil.

Hay muchos métodos de aprendizaje automático disponibles para cualquier problema en particular, desde métodos lineales simples hasta métodos altamente no lineales. Inicialmente, uno debería intentar con métodos más simples como la regresión logística, los árboles de decisión y Naive Bayes, luego pasar a SVM, bosques aleatorios, AdaBoost, redes neuronales, etc., luego al aprendizaje profundo.

Utilice la validación cruzada (CV) 10 veces para verificar los modelos. Los métodos más simples son en su mayoría métodos lineales. Lo más probable es que obtenga un mejor rendimiento con métodos no lineales, ya que su modelo puede manejar la no linealidad en los datos.

Para justificar, compare las precisiones de CV, también observe los puntajes de importancia de las características (si están disponibles) dados por el método. Mire si el modelo usa algunas características conocidas como las mejores características.

Para una justificación teórica, lea este famoso artículo de Demsar et al. http://www.jmlr.org/papers/volum … (Comparaciones estadísticas de clasificadores sobre conjuntos de datos múltiples). Para una comparación empírica utilizando las justificaciones en el documento anterior, lea la siguiente respuesta La respuesta de Shehroz Khan a ¿Cuál es la mejor manera de comparar la precisión de múltiples clasificadores y por qué?

More Interesting

Cómo generar todas las permutaciones de fila de una matriz 2D dada de forma recursiva

Cómo resolver el problema de 'La lista negra' en un CodeSprint reciente de HackerRank

¿Cuáles son algunos buenos libros para aprender y practicar estructuras de datos y algoritmos?

Cómo escribir un programa C # para implementar un algoritmo de programación SRTF (el tiempo restante más corto primero), junto con la visualización del diagrama de Gantt

¿Es posible codificar un algoritmo de manera que cuando se proporciona una imagen de entrada y la ropa que una persona usa en la imagen se recorta y compara con una imagen en una base de datos y sale con la coincidencia exacta / coincidencia más cercana?

¿Qué tan bien funcionan los algoritmos predictivos que analizan los guiones de películas?

¿Cómo se implementa una cadena de bloques en el código?

¿Por qué en Java, la memoria es liberada por el algoritmo Mark y Sweep y no por ningún otro algoritmo?

¿Cómo saben los codificadores cómo codificar e implementar un algoritmo instintivamente?

¿Qué es 600 en forma binaria?

Cómo demostrar que el camino más corto posible entre dos puntos es una línea recta

¿Cómo se ve el algoritmo del juego Plague?

¿Qué algoritmos utilizan Bing, Ask y DuckDuckGo para mostrar los resultados de búsqueda?

¿Es correcto: 100n + log (n) = O (n + (log (n)) ^ 2)?

¿Qué es mejor si necesito elegir un camino para mi carrera, algoritmos y estructuras de datos, o tecnologías de big data, en las que estoy trabajando actualmente?