Machine learning · 2026-10-11 · 6 min
Accuracy no es una métrica: cómo leo un modelo de clasificación
Con datos desbalanceados, la accuracy engaña. Así comparo modelos de machine learning: mismo preprocesado, modelo base, classification_report y matriz de confusión.

Un modelo que acierta el 85 % de las veces puede ser inútil. Si el 85 % de los casos son de una misma clase, basta con decir siempre esa clase para llegar a ese número sin haber aprendido nada.
El ejemplo: cancelaciones de hotel
En mi serie sobre el dataset Hotel Bookings el objetivo es predecir si una reserva se cancela. La variable objetivo está desbalanceada, así que lo primero fue tratar ese desbalanceo y montar una regresión logística como modelo base contra el que medir todo lo demás.
Mismo preprocesado, distinto modelo
Comparar modelos solo tiene sentido si lo único que cambia es el modelo. Por eso todo va en un pipeline de scikit-learn: escalado, selección o reducción de variables y clasificador. Sobre el mismo problema probé un árbol de decisión con SelectKBest y un Random Forest con PCA.
Lo que miro antes que la accuracy
- La matriz de confusión: en qué se equivoca y hacia qué lado.
- Precisión y exhaustividad de la clase que importa, no la media.
- El coste de cada error: no es lo mismo predecir una cancelación que no ocurre que no ver una que sí.
- Si el modelo mejora al modelo base lo suficiente como para justificar su complejidad.
Por qué insisto en el pipeline
Un pipeline evita el error más común: que información del conjunto de prueba se cuele en el entrenamiento a través del escalado o de la selección de variables. Además deja el modelo listo para desplegar tal cual, sin reescribir el preprocesado en otro sitio.
La pregunta que cierra el estudio
No es qué modelo tiene el número más alto. Es qué decisión cambia en el negocio con este modelo y cuánto cuesta cuando falla. Si no hay respuesta, el modelo todavía no sirve.