ML Playground
FundamentosPrincipianteTransversal

Fundamentos: métricas, overfitting y partición de datos

Disponible

Aprende a separar datos, interpretar métricas y detectar cuándo un modelo aprende demasiado poco o memoriza demasiado.

Descripción

Qué hacePresenta las herramientas que se usan para saber si un modelo funciona: partición de datos, métricas y control de la complejidad.

Para qué sirveDistinguir un modelo que generaliza de uno que solo parece bueno porque fue evaluado con los datos equivocados o memorizó el entrenamiento.

La idea central

Un modelo no se evalúa preguntando cuánto recuerda, sino qué tan bien responde ante datos que nunca vio. Para comprobarlo hay que separar los datos, elegir una métrica adecuada y vigilar que la complejidad no convierta aprendizaje en memorización.

Train, validation y test

Entrenamiento (train)

El modelo usa estos ejemplos para ajustar sus parámetros.

Validación

Permite elegir hiperparámetros y complejidad sin mirar el resultado final.

Test

Se usa una sola vez, al final, para estimar cómo funcionará el modelo con datos nuevos.

Data leakage

Ocurre cuando información de validación o test influye en el entrenamiento. El resultado parece mejor de lo que realmente es.

En esta demo:El módulo 3 decide el grado del polinomio mirando solo el error de validación, nunca el de test.

Cómo leer una clasificación

Accuracy

(VP+VN) / total

Proporción total de predicciones correctas. Puede engañar si una clase es mucho más frecuente.

Precision

VP / (VP+FP)

De todo lo que el modelo marcó como positivo, qué proporción realmente lo era.

Recall

VP / (VP+FN)

De todos los positivos reales, qué proporción logró encontrar el modelo.

F1

2 × (precision × recall) / (precision + recall)

Resume precision y recall en un valor; será bajo si cualquiera de los dos es bajo.

Indefinido, no cero:Con un denominador en cero (p. ej. el modelo nunca predijo la clase positiva), la métrica se muestra como «indefinido», nunca como 0% o NaN.

Complejidad y generalización

Underfitting · demasiado simple

El modelo no alcanza a representar el patrón. Comete errores tanto en entrenamiento como en validación.

Buen equilibrio

El error es bajo y parecido en entrenamiento y validación: lo aprendido se transfiere a datos nuevos.

Overfitting · demasiado complejo

El modelo memoriza detalles y ruido. Rinde muy bien al entrenar, pero empeora con datos de validación.

Una partición no cuenta toda la historia:El resultado puede cambiar según qué muestras caigan en cada grupo. La validación cruzada repite este proceso con varias particiones para obtener una estimación más estable.

Playground

01

Separar

Partición de datos

Divide el dataset en tres grupos con responsabilidades distintas. El test queda reservado para la evaluación final y no participa en ninguna decisión previa.

Resultado de la partición

90 muestras sintéticas · seed 7

Entrenamiento
63
Validación
14
Test
13
Tabla de muestras del dataset sintético con la partición (entrenamiento, validación o test) asignada a cada una.
#xyPartición
0-3.911.67Entrenamiento
11.592.04Test
2-0.27-1.65Entrenamiento
31.843.09Entrenamiento
42.112.53Entrenamiento
5-1.06-3.18Test
6-1.63-2.60Entrenamiento
73.021.52Entrenamiento
8-2.76-2.21Entrenamiento
92.093.49Validación
100.430.83Validación
113.730.37Entrenamiento
122.622.25Test
13-1.14-1.58Entrenamiento
14-3.30-0.69Validación
15-0.59-0.74Entrenamiento
161.632.35Entrenamiento
17-1.15-1.57Validación
183.300.71Validación
191.063.11Test
201.472.36Test
212.612.06Validación
22-3.06-1.17Entrenamiento
233.130.75Entrenamiento
240.751.94Entrenamiento
250.391.36Entrenamiento
260.130.19Entrenamiento
270.401.45Validación
280.460.82Entrenamiento
291.141.91Entrenamiento
30-1.50-1.58Entrenamiento
31-3.810.31Entrenamiento
321.040.96Entrenamiento
330.762.28Entrenamiento
34-1.78-2.62Test
352.442.14Validación
36-2.89-1.15Entrenamiento
370.540.41Entrenamiento
38-2.31-1.80Entrenamiento
391.893.05Test
400.872.44Entrenamiento
41-0.09-1.11Entrenamiento
422.372.10Entrenamiento
430.440.38Entrenamiento
44-2.56-2.59Test
45-0.180.66Test
46-2.61-0.29Entrenamiento
473.010.97Entrenamiento
48-2.60-2.39Entrenamiento
491.861.98Entrenamiento
502.332.18Entrenamiento
510.240.27Entrenamiento
520.500.32Entrenamiento
532.212.17Entrenamiento
542.611.63Entrenamiento
55-0.56-0.63Entrenamiento
56-1.99-3.27Entrenamiento
572.642.32Entrenamiento
580.410.63Entrenamiento
590.301.46Test
600.581.47Test
61-0.03-0.34Entrenamiento
623.45-0.19Entrenamiento
63-2.70-1.82Entrenamiento
640.881.75Entrenamiento
65-1.64-3.14Entrenamiento
661.862.46Entrenamiento
67-1.92-2.74Entrenamiento
683.410.42Entrenamiento
693.700.90Validación
70-1.74-3.10Entrenamiento
711.712.27Entrenamiento
721.802.07Entrenamiento
73-1.82-2.90Validación
74-2.88-1.57Entrenamiento
750.481.69Entrenamiento
763.620.89Validación
77-1.70-3.12Entrenamiento
783.280.08Validación
793.26-0.52Entrenamiento
803.410.37Test
81-1.33-2.26Entrenamiento
822.742.37Entrenamiento
832.023.51Validación
843.29-0.43Entrenamiento
85-1.90-2.57Test
86-3.540.71Validación
87-3.34-1.30Entrenamiento
882.311.98Entrenamiento
89-0.02-1.31Entrenamiento
02

Medir

Métricas de clasificación

Cambia la matriz y observa qué pregunta responde cada métrica. El preset desbalanceado demuestra por qué una accuracy alta no siempre significa que el modelo sea útil.

Clases de tamaño similar; precisión, recall y F1 se mantienen cerca de la accuracy.

Las filas son las predicciones del modelo y las columnas son los valores reales. Las celdas de la diagonal son aciertos; las otras dos son errores.
Predicción ↓ / Real →PositivoNegativo
Predicho positivo
Predicho negativo

Atajo: Ctrl/Cmd+Z deshace la última edición confirmada (si el foco no está en un campo de texto).

Métricas calculadas sobre la matriz

Accuracy
89.0%
Precision
88.2%
Recall
90.0%
F1
89.1%
Specificity
88.0%

Cambiar el umbral

Curvas ROC y precisión-recall

¿Qué es el umbral?

Es el puntaje mínimo para predecir “positivo”. Al bajarlo aparecen más positivos: sube el recall, pero también pueden aumentar las falsas alarmas.

¿Qué muestra cada curva?

ROC compara recall con falsas alarmas. Precisión-recall muestra cuánto recall se obtiene sin perder precisión y suele ser más informativa con clases desbalanceadas.

Curva ROC (tasa de falsos positivos vs. tasa de verdaderos positivos)0.00.30.50.81.00.00.30.50.81.0Tasa de falsos positivosTasa de verdaderos positivos
Curva ROC sobre 100 muestras sintéticas derivadas de la matriz actual. AUC = 0.905.
Curva precisión-recall0.00.30.50.81.00.00.30.50.81.0Recall (curva PR)Precisión (curva PR)
Curva precisión-recall sobre las mismas muestras. Área bajo la curva (precisión promedio) = 0.870.

Área bajo la curva

AUC-ROC
0.905

1.0 es separación perfecta; 0.5 equivale a ordenar al azar.

AUC-PR (precisión promedio)
0.870

Más sensible que AUC-ROC cuando la clase positiva es minoritaria.

Nota: las curvas usan 100 puntuaciones sintéticas reproducibles derivadas del preset (45 VP, 6 FP, 5 FN y 44 VN). Con un umbral de 0.5 reproducen la matriz mostrada arriba.

03

Diagnosticar

Underfitting y overfitting

Aumenta el grado del polinomio y compara entrenamiento con validación. La meta no es minimizar el error de entrenamiento a cualquier precio, sino conservar un buen resultado con datos no vistos.

3

Grado 1 dibuja una recta. Al aumentar el grado, la curva puede adaptarse a patrones más complejos y también al ruido.

18
Ajuste polinómico sobre entrenamiento y validación-4.7-2.4-0.12.24.5-4.0-1.90.12.14.2xy
63 muestras de entrenamiento, 14 de validación. Curva polinómica de grado 3 ajustada sobre el conjunto de entrenamiento.
  • Entrenamiento
  • Validación
  • Ajuste (grado 3)

Error de entrenamiento vs. validación

MSE entrenamiento
0.3768
MSE validación
0.7222
R² entrenamiento
0.882
R² validación
0.750

Diagnóstico

Balance razonable

El error de entrenamiento y de validación son similares: el modelo generaliza razonablemente a datos que no vio para ajustarse.

El conjunto de test (separado en el módulo de partición) no participa aquí: se reserva para una evaluación final única después de elegir el grado, no para decidir qué grado usar.

Conceptos relacionados

Referencias