Cómo elegir un algoritmo de aprendizaje automático

Este es un enfoque genérico y práctico que se puede aplicar a la mayoría de los problemas de aprendizaje automático:

  1. Clasifica el problema . Este es un proceso de dos pasos.
    1. Categorizar por entrada . Si ha etiquetado los datos, es un problema de aprendizaje supervisado . Si tiene datos sin etiquetar y desea encontrar la estructura, es un problema de aprendizaje sin supervisión . Si desea optimizar una función objetivo interactuando con un entorno, es un problema de aprendizaje de refuerzo .
    2. Categorizar por salida . Si el resultado de su modelo es un número, es un problema de regresión . Si el resultado de su modelo es una clase, es un problema de clasificación . Si la salida de su modelo es un conjunto de grupos de entrada, es un problema de agrupamiento .
  2. Encuentra los algoritmos disponibles . Ahora que ha categorizado el problema, puede identificar los algoritmos que son aplicables y prácticos para implementar utilizando las herramientas a su disposición.
  3. Implementarlos todos . Configure una tubería de aprendizaje automático que compare el rendimiento de cada algoritmo en el conjunto de datos utilizando un conjunto de criterios de evaluación cuidadosamente seleccionados. El mejor se selecciona automáticamente. Puede hacer esto una vez o tener un servicio en ejecución que lo hace a intervalos cuando se agregan nuevos datos.
  4. Optimizar hiperparámetros (opcional) . Con la validación cruzada, puede ajustar cada algoritmo para optimizar el rendimiento, si el tiempo lo permite. De lo contrario, los hiperparámetros seleccionados manualmente funcionarán lo suficientemente bien en su mayor parte.

Esto se discutió en el podcast de aprendizaje automático The Talking Machines.
Así es como el profesor Ryan Adams respondió esto:
– Comience de manera simple para tener una idea de lo difícil que es el problema. Esto generalmente implica ejecutar algo comercial, por ejemplo, regresión logística o SVM para problemas de clasificación. Si estos algoritmos funcionan bastante bien, entonces el problema es simple y prácticamente todos los algoritmos funcionarán razonablemente bien.
– Si no obtiene una solución satisfactoria, el problema puede ser más difícil y es posible que deba utilizar técnicas más avanzadas. Estos variarían de un problema a otro. Por ejemplo, un problema de clasificación puede ser altamente no lineal. Por lo tanto, es posible que necesite hacer una ingeniería de características no trivial para que funcionen los algoritmos más simples, usar funciones de kernel personalizadas para algoritmos como SVM o usar el aprendizaje profundo para la ingeniería de características (suponiendo que tenga datos suficientes). Otro tipo de dureza podría ser que el problema tiene demasiadas características y muy pocas muestras de entrenamiento. En ese caso, en su mayoría desearía hacer algún tipo de selección de características, utilizando técnicas como modelos de regresión dispersa (por ejemplo, LASSO) o PCA.
– Finalmente, mucho de esto proviene de la experiencia. Un experto generalmente sabría en qué orden probar varios algoritmos para un tipo específico de problema, de modo que pasará de las técnicas más simples a las más complicadas. Debería detenerse en un punto en el que hacer que el algoritmo sea más complejo no le proporciona muchas mejoras en el rendimiento.

(El enlace al episodio específico: Iniciando el aprendizaje simple y automático en Meds)

El modelado de ML es un proceso iterativo y es extremadamente importante realizar un seguimiento de sus pasos, dependencias entre los pasos, dependencias entre su código y archivos de datos y todos los argumentos en ejecución del código. Esto se vuelve aún más importante y complicado en un entorno de equipo,

El tiempo de iteración es un parámetro crítico en el proceso de ciencia de datos. Cuanto más rápido itere, más podrá comprobar ideas y construir un mejor modelo, por lo que se desarrolló una herramienta de científicos de datos para el aprendizaje automático iterativo para cambiar los parámetros del algoritmo de aprendizaje automático y volver a entrenar el modelo: Control de versión de datos: cómo puede mejorar un científico de datos Su productividad

Después de echar un vistazo al conjunto de datos, algunos análisis de datos exploratorios típicos y pasos de preprocesamiento, comienzo con el algoritmo más simple (por ejemplo: regresión o SVM). Dividí el conjunto de datos en tren y conjunto de prueba, apliqué algoritmos ML en él y verifiqué las precisiones / RMSE a través de validación cruzada repetida / validación cruzada k-fold. Luego, finalmente trato de realizar la optimización de hiperparámetros a través de la búsqueda de cuadrícula o la búsqueda aleatoria y mejorar el modelo para que funcione mejor en nuevos conjuntos de datos.

Sin embargo, hay algunas “reglas básicas” para aplicar algoritmos de ML en conjuntos de datos. Por ejemplo: si tengo prisa y quiero buenos resultados sin mucho análisis, utilizo el aumento aleatorio de bosque o gradiente, ya que siempre funcionan bastante bien en todo tipo de conjuntos de datos. Nunca uso Naive Bayes hasta que las características me parecen relacionadas con la decoración. Raramente uso SVM para conjuntos de datos de dimensiones muy altas.

Hay pocos blogs e incluso trabajos de investigación que discutan sobre cómo elegir algoritmos de ML, pero encontré mi propio camino bastante satisfactorio e intuitivo.

Aunque las preguntas piden respuestas sobre la selección de “algoritmos” de aprendizaje automático “a”, trataré eso como la selección de un algoritmo de aprendizaje automático para un problema determinado.

Microsoft tiene excelentes guías para seleccionar y trabajar con modelos de Machine Learning. Incluso puede descargarlos e imprimirlos para referencia futura. Sus enlaces se dan a continuación:

Como dicen, una imagen vale más que mil palabras. Entonces, manteniendo mi respuesta corta esta vez.

Espero que esto ayude. 🙂

Tipo de problema (clasificación, regresión, series de tiempo …), tipo de datos (entrada, predictores), cantidad de datos (lenguajes de aprendizaje profundo con conjuntos de datos pequeños), calidad de datos (falta, medición) y uso final dentro del contexto del problema (predicción vs. perspicacia).

Tengo algunas pautas para la selección de algoritmos aquí: https://www.slideshare.net/Colle

Algoritmos supervisados ​​de aprendizaje automático

Debe encontrar, si los datos tienen una variable dependiente claramente definida. Si es así, entonces es cuestión de aprendizaje supervisado. Dependiendo del tipo de variable dependiente y variable independiente, se selecciona el algoritmo de aprendizaje automático adecuado.

El cuadro a continuación muestra la aplicabilidad de los algoritmos de aprendizaje supervisado en pocas palabras

Vea este video desde las 8:00 minutos para saber más sobre el algoritmo de aprendizaje automático de un vistazo

Algoritmos de aprendizaje automático no supervisados

cuando no hay una variable dependiente, aplica el aprendizaje no supervisado o el análisis de conglomerados. Aplicará el análisis de conglomerados jerárquicos cuando el conjunto de datos sea pequeño. Con el conjunto de datos grandes, aplica k significa algoritmo. El siguiente video de YouTube brinda buenos detalles del análisis de conglomerados

Aprendizaje reforzado

En realidad, es un escenario donde el resultado es bastante complejo y permite que la computadora conozca la situación y el resultado.

Aquí hay una explicación simplista de lo mismo.

Depende de cómo desee evaluar sus existencias. Si desea evaluarlos en función de la magnitud, entonces Regresión. Otro tipo de evaluación puede ser por categorización de existencias en función de ciertos parámetros para los que se puede utilizar la Clasificación de aprendizaje automático. Mientras investigaba sobre Machine Learning, me encontré con este curso gratuito que creo que puede ayudarlo a obtener conocimientos básicos sobre Machine Learning Introducción al Machine Learning para el comercio | Quantra por QuantInsti.

Por prueba y error.

Aplique múltiples algoritmos, ajuste diferentes parámetros y elija el que tenga el mejor error.

Deberías probar tantos como sea posible. Puede probar MLJAR: hace que la búsqueda y el ajuste del algoritmo ML sean indoloros. Pegué un video en el que utilicé MLJAR en el conjunto de datos de ‘Dame algo de crédito’ de Kaggle; en los datos sin procesar con búsqueda y ajuste de algoritmos pude obtener el sexto lugar (envío posterior a la competencia).

Espero que estas 2 fichas de algoritmo te ayuden.
1. Elegir el estimador correcto

2. Hoja de trucos del algoritmo de aprendizaje automático

Respondo una pregunta similar hace algún tiempo. La respuesta de Ricardo Vladimiro a ¿Cuáles son las pautas generales para la selección de modelos?

A continuación se muestra un diagrama de flujo simple: me pareció bastante interesante resolver la selección del algoritmo ML

Intenta, falla, prueba algo nuevo.

Las redes neuronales parecen ser bastante buenas para problemas de clasificación si tiene una GPU. Sin una GPU, las SVM parecen ser buenas.

Hola, le recomiendo que lea esta publicación de blog para comprender cómo elegir algoritmos para Machine Learning. Aunque esta publicación de blog no tiene ninguna explicación sobre consejos para elegir algoritmos, ¡pero supongo que esto te ayudará! Si desea obtener más información sobre este tema, me gustaría ofrecerle ayuda gratuita. ¡Aclamaciones!