Cuándo usar diferentes algoritmos de aprendizaje automático: una guía simple

Si ha estado en el aprendizaje automático el tiempo suficiente, sabrá que existe un principio de "no almuerzo gratis": no existe un algoritmo único para todos que lo ayude a resolver todos los problemas y abordar todos los conjuntos de datos.

Trabajo para Springboard; hemos investigado mucho sobre la capacitación y los recursos de aprendizaje automático. En Springboard, ofrecemos el primer curso en línea con garantía de trabajo de aprendizaje automático.

Lo que ayuda mucho cuando se enfrenta a un nuevo problema es tener un manual de qué algoritmo podría ser el mejor para determinadas situaciones. Aquí, hablamos sobre diferentes problemas y tipos de datos y discutimos cuál podría ser el algoritmo más efectivo para probar para cada uno, junto con un recurso que puede ayudarlo a implementar ese modelo en particular.

Recuerde: la prueba está en el pudín: el mejor enfoque para sus datos es el modelo que empíricamente le brinda los mejores resultados. Esta guía está destinada a perfeccionar sus primeros instintos y ayudarlo a recordar qué modelos podrían ser los más efectivos para cada problema y cuáles no serían prácticos de usar.

Comencemos hablando de las variables que debemos considerar.

T nsupervised aprendizaje vs aprendizaje supervisado

El aprendizaje no supervisado es donde permite que el algoritmo de aprendizaje automático comience a aprender y generar un resultado sin ningún procesamiento humano explícito de los datos de antemano.

El aprendizaje supervisado implica un etiquetado y procesamiento de los datos de entrenamiento de antemano para estructurarlos para su procesamiento.

El tipo de aprendizaje que puede realizar será muy importante cuando comience a trabajar con diferentes algoritmos de aprendizaje automático.

S ritmo y las consideraciones de tiempo

Hay consideraciones de espacio y tiempo para cada algoritmo de aprendizaje automático. Si bien en la práctica probablemente trabajará con versiones optimizadas de cada algoritmo empaquetado en un marco, es bueno considerar cómo los algoritmos que elija pueden afectar el rendimiento.

La salida

En tercer lugar, y quizás lo más importante, es el resultado que desea obtener . ¿Estás intentando categorizar datos? ¿Utilizarlo para predecir puntos de datos futuros? Lo que busca obtener como resultado y lo que desea hacer con sus datos determinará en gran medida los enfoques algorítmicos que debe tomar.

Algunos ejemplos

Está buscando construir un modelo predictivo simple con un conjunto de datos bien estructurado sin demasiadas complicaciones.

Su mejor apuesta aquí es probablemente la regresión lineal, algo que puede tomar una gran cantidad de factores y luego brindarle un resultado predictivo con una explicación simple de la tasa de error y una explicación simple de qué factores contribuyen a la predicción. Tampoco se necesita mucha potencia computacional para ejecutar una regresión lineal.

Recurso : Regresión lineal - Vista detallada

Está buscando clasificar los datos que ya han sido etiquetados en dos o más tipos de etiquetas claramente diferenciados (por ejemplo, tratando de determinar si es probable que los niños sean hombres o mujeres en función de su peso y altura) en un entorno supervisado.

El primer instinto que debe tener cuando ve una situación como esta es aplicar el modelo de regresión logística . Después de ejecutar el modelo, verá que fuerza cada punto de datos en dos categorías diferentes, lo que le permite generar fácilmente qué punto pertenece a qué categoría. El modelo de regresión logística también se puede generalizar fácilmente para trabajar con múltiples clases de objetivos y resultados si eso es lo que exige su problema.

Recurso : Creación de una regresión logística

Busca colocar datos continuos sin etiquetar en diferentes grupos (por ejemplo, ubicar clientes con ciertos rasgos registrados e intentar descubrir categorías / grupos a los que pueden pertenecer).

El primer ajuste natural para este problema es el algoritmo de agrupación de K-Means, que agrupará y agrupará los datos midiendo la distancia entre cada punto. Luego hay una variedad de algoritmos de agrupación, como la agrupación espacial de aplicaciones basada en densidad con algoritmos de ruido y desplazamiento medio.

Recurso : Los 5 algoritmos de agrupación en clústeres que los científicos de datos deben conocer

Está buscando predecir si una cadena de caracteres o un grupo de rasgos cae en una categoría de datos u otra (clasificación de texto supervisada), por ejemplo, si una revisión es positiva o negativa.

Su mejor apuesta aquí es probablemente Naive Bayes, que es un modelo simple pero poderoso que puede usarse para la clasificación de texto. Con un poco de preprocesamiento y limpieza de texto (teniendo especial cuidado de eliminar las palabras vacías de relleno como "y" que podrían agregar ruido a su conjunto de datos), puede obtener un conjunto notable de resultados con un modelo muy simple.

Otra apuesta decente es la regresión logística, que es un modelo simple de comprender y explicar, y menos difícil de distinguir que Naive Bayes (que a menudo asignará probabilidades palabra por palabra en lugar de etiquetar holísticamente un fragmento de texto como parte de un grupo u otro ).

Pasando a algo más poderoso, un algoritmo de máquina vectorial de soporte lineal probablemente ayudará a mejorar su rendimiento. Si desea saltar directamente aquí, puede hacerlo (aunque sugiero probar ambos modelos y comparar cuál funciona mejor: Naive Bayes tiene una implementación absurdamente fácil en marcos como scikit-learn y no es muy costoso computacionalmente, por lo que puede pagar para probar ambos).

Por último, el análisis de bolsa de palabras también podría funcionar: considere hacer un conjunto de diferentes métodos y probar todos estos métodos entre sí, según el conjunto de datos en cuestión.

Recurso : Comparación y selección del modelo de clasificación de texto de clases múltiples

Está buscando realizar un aprendizaje no estructurado en conjuntos de datos de imágenes o videos a gran escala (por ejemplo, clasificación de imágenes).

El mejor algoritmo para abordar el paso de diferentes imágenes es una red neuronal convolucional que está organizada de manera similar a cómo se analizan las cortezas visuales de los animales.

Medido por el rendimiento (tasa de error reducida) en la competencia ImageNet, la arquitectura SE-Resnet se destaca, aunque como el campo aún se está desarrollando, surgen nuevos avances casi todos los días.

Sin embargo, debe tener en cuenta que las redes neuronales convolucionales son densas y requieren mucha potencia computacional, así que asegúrese de tener la capacidad de hardware para ejecutar estos modelos en conjuntos de datos a gran escala.

Recurso : Revisión de algoritmos de aprendizaje profundo para clasificación de imágenes

Está buscando clasificar los puntos de resultado que surgen de un proceso bien definido (p. Ej., Número de contrataciones de un proceso de entrevista preestablecido, en el que conoce o puede inferir computacionalmente las probabilidades de cada evento).

La mejor opción para esto es probablemente un algoritmo de árbol de decisión que explique claramente cuáles son los puntos de división entre clasificar algo en un grupo u otro.

Recurso : árboles de decisión en el aprendizaje automático

Está buscando hacer un análisis de series de tiempo con datos supervisados ​​y bien definidos (por ejemplo, predecir los precios de las acciones según patrones históricos en el mercado de valores ordenados cronológicamente desde el pasado hasta el presente).

Una red neuronal recurrente está configurada para realizar análisis de secuencia al contener una memoria interna en flujo de los datos que procesa, lo que le permite tener en cuenta la relación entre los datos y el horizonte temporal y el orden en que se implementan.

Recurso : Redes neuronales recurrentes y LSTM

Terminando

Tome las recomendaciones y los recursos anteriores y aplíquelos como una especie de primer instinto para su modelado; lo ayudarán a comenzar cualquier trabajo que haga un poco más rápido. Si está interesado en ser asesorado por un experto en aprendizaje automático para aprender a entrenar aún más sus instintos, consulte la Carrera de IA / Aprendizaje automático de Springboard.