Cómo explorar los datos para elegir un algoritmo de aprendizaje automático

Es bien sabido que si realmente tiene muchos datos etiquetados y las características correctas, muchos algoritmos ML funcionarán bien. Sin embargo, se prefieren algoritmos más simples cuando tiene muchos datos o sus datos son ruido. Por ejemplo, la regresión logística regularizada con miles, millones o incluso miles de millones de características funciona sorprendentemente bien.

Es probable que un algoritmo más sofisticado como GBRT (árbol de regresión impulsado por gradiente), bosques aleatorios o una red neuronal profunda superen a los métodos simples. Sin embargo, son más caros de entrenar. De hecho, cuando hay muchísimos datos, es posible que desee aplicar algún algoritmo de aprendizaje en línea, como el perceptrón lineal. Los algoritmos de aprendizaje en línea a menudo dependen del descenso de gradiente estocástico.

Quizás, el paso más importante es la selección de características. Las características son señales que le dicen algo sobre los datos. La selección de características es más un arte que una ciencia. Puede ser difícil seleccionarlos. Sin embargo, a menudo es fácil seleccionar un gran conjunto de características candidatas y eliminar una poco prometedora. Existe una gran cantidad de literatura sobre el tema de la reducción de características. Recolecté algunos enlaces (no necesariamente los más relevantes) aquí: Selección de funciones y reducción de dimensionalidad en inglés “Machine learning”

Una alternativa a la generación manual de características son los codificadores automáticos: Autoencoder Esencialmente, uno usa una red neuronal para crear incrustaciones de espacio vectorial. Ahora, esto parece ser lo último en muchas áreas, incluido el procesamiento de imágenes. Un programa famoso para crear incrustaciones de vectores para datos textuales es word2vec.

La elección de un algoritmo también depende de la tarea: ¿es aprendizaje supervisado, no supervisado, semi-supervisado? Mi consejo es aplicable principalmente a los enfoques supervisados.

También debe buscar en Google consultas como “qué algoritmo de aprendizaje de máquina debería elegir”. Por ejemplo, he encontrado el siguiente enlace de Quora: ¿Cuál es la mejor manera de saber qué algoritmo de aprendizaje automático tiene una mejor probabilidad de clasificar con precisión o con mayor precisión un conjunto de datos, antes de aplicarlo?

More Interesting

¿Cuáles son los temas de doctorado en estructuras de datos y análisis?

¿Por qué el algoritmo Chandy-Lamport necesita suponer que todos los mensajes llegan exactamente una vez?

¿Cuál es el mejor enfoque para mí para aprender algoritmos y estructuras de datos?

¿Qué tan buena es la calidad de los problemas de HackerRank en comparación con los problemas de Topcoder, Codeforces, Codechef?

¿Alguien puede ayudarme a entender cómo funciona este código?

¿Es mejor hacer InterviewBit ahora (actualmente estoy en mi quinto semestre) o hacer SPOJ ahora y luego hacer InterviewBit solo 3 o 4 meses antes de las entrevistas? Solo conozco algunas estructuras de datos y algoritmos básicos. He hecho 40 problemas en SPOJ.

¿Qué significa que el algoritmo TD (en el aprendizaje por refuerzo) hace predicción y no control?

¿Cuál es la razón por la que el conjunto de todos los enteros contiene 0?

Cómo escribir un algoritmo que tome una muestra aleatoria de tamaño k de una secuencia de n elementos

¿Hay algoritmos con complejidad [math] \ mathcal {O} [/ math] [math] (\ sqrt {\ log (n)}) [/ math]?

¿Cuál es el algoritmo más optimizado para encontrar la suma de la diferencia absoluta de cada par distinto en una matriz entera?

¿Qué algoritmo es fácil de aprender pero aún tiene una gran importancia?

¿Cuál es el algoritmo de clasificación más rápido para una matriz de números grandes (hasta 1,000,000,000,000)?

Cómo completar consultas en tiempo O (1) en un problema RANGESUM en SPOJ

¿Por qué la notación O grande es más común si la notación theta grande nos da más información?