Capítulo 25 de 25 10 secciones 7 min

Referencias y dónde seguir

La documentación de scikit-learn, las fuentes de lo que este libro afirma, las librerías que no pudimos instalar y qué queda fuera.

La documentación de scikit-learn es la fuente que hay que tener abierta, y en especial su página de errores comunes. Aquí están enlazadas las páginas concretas de cada cosa que hicimos, las librerías que no instalamos y para qué sirven, los libros gratuitos que sí valen la pena y la lista honesta de lo que este libro no cubre.

Hola! Este es el mapa para cuando yo ya no esté al lado

Quince capítulos y una lista de clientes. Lo que viene ahora son los sitios donde mirar cuando te toque el caso que no está aquí 🐣

Una cosa antes de las listas. En machine learning hay muchísimo contenido y muy poco bueno, porque casi todo se detiene donde empieza lo difícil: el fit y el predict son la parte fácil y son la parte que todo el mundo enseña. Lo que separa un modelo que sirve de uno que no es la fuga, la partición, el umbral y la vigilancia, y de eso hay mucho menos escrito 🤷‍♀️

La documentación, que es lo primero

Y si de toda esta tabla solo vas a abrir una página, que sea Common pitfalls and recommended practices, que es la propia gente de scikit-learn contando los errores que ve cometer todo el rato. Ahí está la fuga por preprocesar antes de partir, que es el capítulo 12 de este libro, explicada por quienes escribieron la librería 💡

Dónde está cada cosa que hicimos

Por si quieres leer completa alguna de las que pasamos rápido.

  • 🔧 Capítulo 11, el pipeline. La página de Pipeline y ColumnTransformer tiene los diagramas que a mí me hicieron entenderlo.
  • 🕳️ Capítulo 12, la fuga. Está dentro de common pitfalls, en la sección de data leakage.
  • 📏 Capítulo 14, las métricas. La página de evaluación de modelos las tiene todas con su fórmula.
  • 🔁 Capítulo 16, la validación. Validación cruzada, incluido el GroupShuffleSplit que nos ahorró el disgusto de los clientes repetidos.
  • 🎯 Capítulo 22, la calibración. Calibración de probabilidades, con el CalibratedClassifierCV para cuando el modelo no salga calibrado de fábrica como salió el nuestro.
  • 🔀 Capítulo 19, la importancia. Importancia por permutación, que además explica por qué la del bosque engaña con columnas de muchos valores.

Las librerías que no instalamos y para qué son

En este libro corrimos todo con scikit-learn a propósito, porque quería que pudieras reproducirlo sin pelear con instalaciones. Estas son las que tocaría mirar después, cada una para una cosa concreta 🧰

  • 📦 SHAP. Explicar predicciones de modelos que no son lineales. Para la logística del capítulo 19 daba lo mismo que sumar los aportes a mano, pero para un boosting es otra historia.
  • ⚖️ Fairlearn. Las métricas por grupo del capítulo 22, ya empaquetadas, más algoritmos para emparejar sin tener que elegir umbrales a mano.
  • 📐 MAPIE. Predicción conforme, que en el capítulo 22 hicimos en cinco líneas. La librería trae las variantes buenas y la cobertura condicional que a nosotros no nos alcanzó con 160 filas por grupo.
  • ⚖️ imbalanced-learn. Remuestreo para el problema del capítulo 18, con SMOTE y compañía.
  • 🌳 XGBoost y LightGBM. Los boosting que ganan competencias con datos en tabla. El HistGradientBoostingClassifier del capítulo 17 es el primo de scikit-learn y para empezar sobra.
  • 📊 statsmodels. Si lo que quieres son valores p, intervalos de confianza sobre los coeficientes y tablas de regresión con pinta de paper, esto es lo tuyo y scikit-learn no.

Lo que yo leería, en este orden

  • 1️⃣ Rules of Machine Learning, de Martin Zinkevich en Google. Cuarenta y tres reglas de ingeniería, gratis y cortas. La regla 1 es "no tengas miedo de lanzar un producto sin machine learning" y ya con esa vale la pena.
  • 2️⃣ An Introduction to Statistical Learning, de James, Witten, Hastie y Tibshirani. El PDF es gratis y legal en esa página, y hay versión con código en Python. Es el libro que explica por qué funciona lo que aquí hicimos a mano.
  • 3️⃣ El curso rápido de Google, gratis y con ejercicios. Está en español.
  • 4️⃣ A Gentle Introduction to Conformal Prediction, de Anastasios Angelopoulos y Stephen Bates. De donde sale lo del capítulo 22. Es un paper pero se lee, que es raro.

Y un aviso sobre los cursos de pago que te van a salir en publicidad: casi todos terminan en el capítulo 13 de este libro. Te enseñan a entrenar ocho modelos y a comparar accuracy, y ahí paran 🙃

Lo que este libro no cubre

Prefiero decírtelo yo a que lo descubras cuando te lo pidan.

  • 🧠 Redes neuronales y deep learning. Tiene su propio libro aquí: Deep learning desde cero.
  • 📈 Series de tiempo. Predecir la venta del mes que viene es otro problema, con su propia validación y sus propios modelos. Nosotros predijimos si una fila compra, que no es lo mismo.
  • 💬 Texto e imágenes. Todo este libro es datos en tabla.
  • 🎬 Recomendadores. El "quien compró esto también compró" tiene su propia familia de métodos.
  • 🔗 Causalidad. Y este es el importante. Todo lo que hicimos dice quién va a comprar, no qué pasa si le hago un descuento. Son preguntas distintas y confundirlas es el error más caro que se comete con estos modelos.
  • 🏗️ Las herramientas de MLOps. MLflow, Airflow, los registros de features. Con el joblib y el revisa del capítulo 23 llegas más lejos de lo que crees, y cuando eso se te quede chico ya vas a saber qué pedirle a las herramientas.

Dónde practicar con datos de verdad

Cuando ventas-miss-yera.csv se te quede chico:

Y el consejo que vale más que los cuatro enlaces: si tienes acceso a datos de tu propio trabajo, practica con esos. Un modelo mediocre sobre datos que entiendes vale más que uno bueno sobre datos que no 💰

Los otros libros de esta casa

Sobre los datos de este libro

Todo lo que corrimos usa ventas-miss-yera.csv, que es un archivo que armé yo con ventas inventadas de una distribuidora peruana. Las filas no son de ningún cliente real.

Lo que sí es real es la suciedad: las 37 filas duplicadas, las comas decimales, las cuatro formas de escribir Lima, las fechas en dos formatos, los 21 montos negativos y las columnas con nulos que significan algo. Todo eso lo puse a mano porque es lo que te vas a encontrar, y un dataset limpio no te enseña a trabajar 🧹

Los números de este libro salen de correr el código sobre ese archivo. Si corres tú lo mismo, te tienen que salir iguales; si no salen, escríbeme.

Y ya está

Si llegaste hasta acá, gracias de verdad 💛

Este libro me tomó mucho más de lo que pensaba, sobre todo porque me obligué a correr cada bloque de código antes de publicarlo, y unas cuantas veces el resultado me desmintió lo que iba a escribir. Esas veces están todas ahí, sin maquillar: la columna que valía doce puntos y no aportaba nada, el listón por grupo que empeoró las cosas, los seis meses de deriva que no existían.

Creo que esa es la parte que más se parece al trabajo de verdad 🌸

Que tengas lindo día!

¿Tienes alguna duda o consulta?