47. Estadística aplicada al aprendizaje automático

El aprendizaje automático necesita estadística para medir generalización, comparar modelos, cuantificar errores y tomar decisiones con datos que cambian.

47.1 Estadística y aprendizaje automático

Un modelo de aprendizaje automático aprende patrones a partir de datos. La estadística ayuda a decidir si esos patrones se generalizan, si una métrica es adecuada y si una diferencia entre modelos es confiable.

El objetivo no es solo obtener una predicción: es estimar cómo funcionará con observaciones futuras y bajo qué condiciones puede fallar.

47.2 Variables y objetivo

Las variables de entrada o características se suelen representar como X y la variable objetivo como y. En clasificación, y puede ser una categoría; en regresión, un valor numérico.

La definición del objetivo determina qué datos se necesitan, qué errores importan y qué métrica debe utilizarse.

47.3 Entrenamiento, validación y prueba

ConjuntoUso
EntrenamientoAjustar los parámetros del modelo.
ValidaciónElegir hiperparámetros y comparar alternativas.
PruebaEvaluación final, realizada al terminar las decisiones.

Usar repetidamente el conjunto de prueba para elegir el modelo convierte la prueba en otra forma de entrenamiento y produce una estimación demasiado optimista.

47.4 Sobreajuste y subajuste

SobreajusteEl modelo memoriza ruido: error bajo en entrenamiento y alto en datos nuevos.
SubajusteEl modelo es demasiado simple y falla incluso en entrenamiento.
GeneralizaciónEquilibrio entre flexibilidad y rendimiento fuera de muestra.

La diferencia entre error de entrenamiento y validación es una señal importante, pero debe interpretarse junto con el tamaño y la forma de los datos.

47.5 Validación cruzada

En la validación cruzada se divide el conjunto en varios bloques. Cada bloque se usa una vez para validar y los restantes para entrenar. Se resumen las métricas de las particiones.

Esto utiliza mejor los datos disponibles y muestra la variabilidad del rendimiento. En datos temporales o agrupados hay que elegir una partición que evite usar información futura o del mismo grupo.

47.6 Clasificación y matriz de confusión

Para un clasificador binario se comparan las etiquetas reales con las predicciones:

Predice positivoPredice negativo
Real positivoVerdadero positivo (TP)Falso negativo (FN)
Real negativoFalso positivo (FP)Verdadero negativo (TN)

47.7 Laboratorio interactivo

Cambiar umbral y observar métricas

47.8 Accuracy

Accuracy = (TP + TN) / (TP + TN + FP + FN)

La exactitud es intuitiva cuando las clases están equilibradas y los costos de error son parecidos. En una clase minoritaria puede ser engañosa: predecir siempre la clase mayoritaria puede lograr una accuracy alta y no detectar ningún caso importante.

47.9 Precisión y sensibilidad

Precisión = TP / (TP + FP)
Sensibilidad o recall = TP / (TP + FN)

La precisión responde: de los casos predichos como positivos, ¿cuántos eran positivos? El recall responde: de los positivos reales, ¿cuántos detectamos?

Aumentar el umbral suele reducir falsos positivos, pero puede aumentar falsos negativos. La elección depende del costo de cada error.

47.10 F1 y curvas

F1 = 2 · precisión · recall / (precisión + recall)

F1 resume precisión y recall mediante su media armónica. Es útil cuando se desea equilibrarlos, pero no reemplaza revisar cada componente.

Las curvas ROC y precision-recall muestran el comportamiento al cambiar el umbral. En clases muy desbalanceadas, precision-recall suele ser especialmente informativa.

47.11 Regresión y errores

En regresión se predicen valores numéricos. El error absoluto medio conserva las unidades, el error cuadrático medio penaliza más los errores grandes y el error porcentual puede ser problemático cerca de cero.

La métrica debe alinearse con la decisión: un error de 10 unidades puede ser leve en un problema y crítico en otro.

47.12 Desbalance de clases

Cuando una clase es poco frecuente, conviene informar la matriz de confusión, recall de la clase positiva, precisión, especificidad y métricas balanceadas. También pueden utilizarse pesos, muestreo o umbrales ajustados.

El conjunto de prueba debe conservar una distribución realista o explicar claramente si fue balanceado artificialmente.

47.13 Probabilidades y calibración

Un modelo puede devolver probabilidades, pero no toda probabilidad predicha está bien calibrada. Si un grupo de casos recibe 0,7, aproximadamente 70 % debería pertenecer a la clase positiva para que la interpretación sea adecuada.

La calibración se evalúa con datos separados y es importante cuando las probabilidades se usan para priorizar recursos o calcular riesgos.

47.14 Fuga de información

Hay fuga de información cuando una variable o transformación utiliza datos que no estarían disponibles en el momento real de la predicción, o cuando información del conjunto de prueba entra en el entrenamiento.

La fuga produce resultados artificialmente altos. Las transformaciones deben ajustarse dentro de cada partición y respetar el orden temporal.

47.15 Implementación en JavaScript

Este ejemplo convierte probabilidades en predicciones mediante un umbral y calcula una matriz de confusión, accuracy, precisión, recall y F1.

const reales = [1, 1, 1, 0, 0, 0, 1, 0];
const probabilidades = [0.90, 0.70, 0.40, 0.80, 0.20, 0.30, 0.60, 0.10];
const umbral = 0.50;
const predicciones = probabilidades.map(probabilidad => probabilidad >= umbral ? 1 : 0);
let tp = 0; let tn = 0; let fp = 0; let fn = 0;

reales.forEach((real, indice) => {
  const prediccion = predicciones[indice];
  if (real === 1 && prediccion === 1) tp++;
  else if (real === 0 && prediccion === 0) tn++;
  else if (real === 0 && prediccion === 1) fp++;
  else fn++;
});
const accuracy = (tp + tn) / reales.length;
const precision = tp / (tp + fp);
const recall = tp / (tp + fn);
const f1 = 2 * precision * recall / (precision + recall);
console.log({ tp, tn, fp, fn, accuracy, precision, recall, f1 });

if (typeof document !== 'undefined') {
  const canvas = document.getElementById('canvasMLCodigo');
  const contexto = canvas.getContext('2d');
  contexto.clearRect(0, 0, canvas.width, canvas.height);
  const metricas = [accuracy, precision, recall, f1];
  const nombres = ['Accuracy', 'Precisión', 'Recall', 'F1'];
  metricas.forEach((metrica, indice) => { const alto = metrica * 280; contexto.fillStyle = '#65468d'; contexto.fillRect(80 + indice * 160, 360 - alto, 90, alto); contexto.fillStyle = '#392a54'; contexto.fillText(nombres[indice], 80 + indice * 160, 390); contexto.fillText(metrica.toFixed(2), 105 + indice * 160, 345 - alto); });
}

47.16 Interpretabilidad y sesgo

Una métrica global puede ocultar errores concentrados en ciertos grupos. Es importante revisar el rendimiento por segmento, evaluar la calidad de las etiquetas y considerar consecuencias diferentes para las personas afectadas.

La interpretabilidad no es solo una propiedad técnica: ayuda a detectar errores, justificar decisiones y discutir límites del modelo.

47.17 Qué debes recordar

Evaluar un modelo es estimar cómo fallará fuera de los datos de entrenamiento.
La métrica debe corresponder al objetivo, la partición debe evitar fugas, el umbral debe considerar costos y el rendimiento debe revisarse por grupos y con incertidumbre.

47.18 Conclusión

La estadística aplicada al aprendizaje automático conecta predicción con evidencia. Separar datos, medir errores relevantes, validar decisiones y revisar desbalance, calibración y sesgo permite construir modelos más útiles y honestos sobre su rendimiento.