Honestamente, hay mucho arte en el proceso de selección del modelo. Hay muchas situaciones “obvias” cuando la elección es obvia, pero la experiencia significa mucho. Aquí hay una hoja de ruta.
Cuando observa el problema, tiene en mente dos entidades estrechamente conectadas: el objeto y la representación. Por objeto quiero decir literalmente todo lo que se esconde detrás de cada punto de datos: el perfil de una persona, una imagen, un texto o lo que no. La representación se puede obtener de varias maneras y muchas de ellas conducen al mejor modelo por su naturaleza.
Por ejemplo, cuando clasifica a las personas que están representadas por vectores de características, ve la analogía muy claramente: las personas se pueden dividir en grupos de muchas maneras, y la más fácil es definir un rasgo / atributo e indicar si la persona lo tiene o no En ese caso, tiene muchas características binarias o categóricas y siempre son muy buenas en modelos basados en árboles (CART, RF, GBM, etc.)
- Estoy planeando aprender la herramienta de visualización de datos, ¿cuál debería considerar tableau, Qlik view, Power BI?
- ¿Cuáles son las diferencias entre las carreras universitarias de ingeniería industrial, investigación de operaciones, ciencias de gestión y ciencias de datos?
- ¿Cuáles son los problemas con big data?
- ¿Cuál es la relación entre NumPy, SciPy, Pandas y Scikit-learn y cuándo debo usar cada uno de ellos?
- ¿Qué es la dependencia de datos y por qué es importante?
Otro buen ejemplo es una imagen. En la visión por computadora, las imágenes a menudo están representadas por matrices o tensores. ¿Qué nos dice sobre el problema que debemos resolver? Dos cosas: los patrones en las representaciones pueden ser muy complejos y pueden ocurrir en lugares inesperados. Eso nos lleva al modelo más general: la red neuronal.
¿Cómo eliges el perfecto?
Piensa en el proceso subyacente que produjo datos. ¿Qué tan complejo es? ¿Tiene una tendencia humana interpretable? ¿Hay alguna jerarquía? ¿Qué pasaría si tuvieras solo dos características en lugar de doscientas? ¿Cómo se organizarían en un avión?
Esas preguntas son muy importantes para su proceso de pensamiento. ¡Y todavía no hemos hecho ningún cálculo! Ahora, ¿cómo visualizas tu conjunto de datos? ¿La distancia espacial entre vectores de características tiene algún sentido para su problema?
Siempre es bueno pensar sobre la marcha. Haga una pequeña muestra representativa de sus datos. Realiza un montón de experimentos rápidos con una biblioteca ligera, crea un prototipo. ¿Cómo se comparan? Este comportamiento probablemente se verá cuando lo construya en todo el conjunto de datos.
- Comprende el problema
- Hacer visualizaciones, explorar los datos.
- Comprender el significado de las representaciones.
- Resuma la relación entre su objetivo y sus datos.
- Haz experimentos rápidos
Las restricciones de su tarea son importantes. Si necesita explicar sus hallazgos e interpretar las relaciones ocultas, por ejemplo, si está haciendo predicciones de abandono o perfiles de clientes, siempre debe buscar primero los modelos más simples. La regla 80/20 también se aplica aquí.
A menudo no veo consideraciones teóricas sobre la complejidad; de hecho, la elección del algoritmo es obvia a partir de las preguntas anteriores o se determina a través de experimentos con bastante rapidez. También hay técnicas como la generalización y el ensamblaje de modelos que le permiten combinar las fortalezas individuales de cada modelo.
El proceso en Kaggle no difiere mucho de eso, tal vez más experimentos y menos preocupaciones sobre la interpretabilidad.