Machine learning con scikit-learn
25 pasos en 8 series de Python.
La verdadera contribución de scikit-learn es la API de estimadores: fit, predict, transform, y el hecho de que cada modelo de la biblioteca la obedece. Aprende esa forma una vez y el resto de la biblioteca es un catálogo.
Así que el tour empieza ahí, luego el preprocesamiento y los pipelines que evitan que filtres datos de prueba al entrenamiento. Validación, un recorrido por los modelos, métricas que van más allá del accuracy, métodos no supervisados, y una serie final sobre las cosas a las que recurres cuando lo básico deja de alcanzar.
La API de estimadores
- La API de estimadoresTodo modelo en scikit-learn tiene la misma forma: construir, ajustar, predecir.
- Dividir los datosNunca evalúes un modelo con filas que lo entrenaron: divide primero, siempre.
- Regresión linealAjustar una recta y luego leer los coeficientes y el error.
Preprocesamiento
- Escalar característicasLos modelos que miden distancias necesitan características en escalas comparables.
- Rellenar valores faltantesSimpleImputer reemplaza huecos con un estadístico aprendido del entrenamiento.
- Columnas distintas, tratos distintosColumnTransformer enruta columnas numéricas y categóricas por caminos separados.
- PipelinesUn pipeline encadena preprocesamiento y modelo en un estimador, y nada se filtra.
Validación
- Validación cruzadaUna sola división es azar; la validación cruzada puntúa cada pliegue y promedia.
- Elegir los plieguesKFold y StratifiedKFold deciden cómo se parten los datos.
- Grid searchGridSearchCV prueba cada combinación con validación cruzada y guarda la mejor.
- ¿Más datos ayudan?Una curva de aprendizaje responde si conviene juntar datos o cambiar el modelo.
Modelos
- Bosques aleatoriosUn ensamble de árboles, y las importancias de características que trae consigo.
- Gradient boostingÁrboles ajustados uno tras otro, cada uno corrigiendo lo que el anterior falló.
- Vecinos más cercanosEl modelo que no trabaja hasta que le haces una pregunta.
- Árboles de decisiónUn modelo que puedes leer: profundidad, divisiones y las reglas que aprendió.
Métricas
- Métricas de clasificaciónLa exactitud sola esconde las fallas interesantes: mira también precisión y recall.
- La matriz de confusiónCuatro conteos que explican cualquier puntaje de clasificación que cites.
- Probabilidades, umbrales y AUCpredict_proba da puntajes; el umbral es una decisión tuya, no del modelo.
- Métricas de regresiónEl error en las unidades que te importan, y la parte de varianza explicada.
No supervisado
- Clustering con KMeansNo supervisado: sin etiquetas, solo centroides y los puntos más cercanos a cada uno.
- PCARotar los datos para que los primeros ejes carguen la mayor varianza.
Más allá de lo básico
- Un transformador propioImplementa fit y transform y tu código encaja en cualquier pipeline.
- Clases desbalanceadasCuando una clase es rara, la exactitud miente y hay que declarar los pesos.
- Guardar un modelo ajustadojoblib escribe el pipeline ajustado completo, preprocesamiento incluido.
Bis
- sk_churn_model.pyUn modelo de punta a punta: dividir, preprocesar por tipo de columna, grid search, reporte.