Evidencia de aprendizaje: Distingue interpolar de extrapolar y descompone una caída de validación a test en sus mecanismos.
Actividad final: Las dudas resueltas del árbol de 45 cm y del agrónomo, al final de esta clase.
Criterio de dominio: Declara la extrapolación y explica la caída con dos mecanismos: haber decidido con esos datos y el cambio de distribución.
Activación. Tu recta tiene R² = 0,93 con árboles de 8 a 22 cm de radio. Te piden el peso de uno de 45 cm. ¿Lo entregas? Escribe tu respuesta antes de seguir: la retomas en el cierre.
Generalización
Por qué un modelo bueno aquí puede ser malo allá.
Fundamentos de Ciencia de Datos · UdeC
Train / validation / test →
Generalización →
Overfitting y underfitting →
…y 8 conceptos más
Dónde estás. Viene de train / validation / test y
habilita el sobreajuste, los árboles, los ensambles y todo el bloque de modelos.
Nueve conceptos quedan bloqueados si este no se entiende.
Su peso en la evaluación es medio —transversal a las preguntas 2, 3 y 7— pero
su importancia curricular es de las más altas del programa. No es un concepto
que se estudie para puntuar: es uno de los que sostienen el resto.
1 · Qué es, en una frase
El profesor lo definió con una pregunta y un ejemplo de mantenimiento:
«¿Qué quiere decir generalizar? Que sea capaz de funcionar para datos que no ha visto antes. […] si yo tengo un modelo que me predice cuando va a fallar una máquina por decir algo. No quiero que me prediga cuando falló la máquina. Quiero que me prediga cuando va a fallar el futuro» Clase del 31-jul · 0:42:10–0:42:24 · profesor ·
[FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md]
Y lo dijo también «entre comillas»: es «como que la máquina no se aprenda de
memoria los datos»
[FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md · 0:42:54].
El ejemplo de la máquina es la clave: predecir las fallas que ya ocurrieron no
sirve de nada; el valor está en las que vienen.
Generalizar es funcionar donde no aprendiste. [DATITO]
Todo lo demás —sobreajuste, validación cruzada, el conjunto de test— existe
para una sola cosa: estimar si el modelo va a generalizar, antes de
apostar a que sí.
El problema es que generalizar no es una propiedad que se pueda observar
directamente. Solo puedes estimarla, y toda estimación tiene un
supuesto detrás.
2 · El supuesto que casi nadie declara
Cuando mides en un conjunto de test y dices «el modelo tiene MAE 188.218»,
estás afirmando algo más de lo que parece:
«Los datos donde voy a usar el modelo se parecen a los datos donde lo
medí.»
Si eso deja de ser cierto, tu número deja de significar lo que crees. Y casi
nunca es del todo cierto.
Hay tres formas de que se rompa, y conviene distinguirlas porque tienen
remedios distintos:
Qué cambió
Nombre
Ejemplo
La distribución de las features
Covariate shift
En 2017 aparecen casas en barrios que no existían en 2016
La disponibilidad de una feature
Cambio de captura
CouncilArea está completa en 2016 y falta el 18,9 % en 2017
La relación entre features y target
Concept drift
Cambia la ley de arriendos y el precio por m² ya no se forma igual
3 · Predecir donde no hay datos: entre los puntos y fuera de ellos
Entre los puntos: el ejemplo del profesor
La primera demostración del profesor no fue fuera del rango, sino
dentro: un polinomio de grado 10 que pasa muy cerca de todos los
datos, y una consulta en un punto cualquiera de la curva.
«Imagínense que yo tengo este polinomio de grado 10 y lo ajusto a los datos y me queda esto y ahora yo pregunto por ejemplo este valor. Este valor de acá. […] pero es raro que ese sea el valor de ⟨y griega⟩ así como que no sigue la tendencia.» Clase del 31-jul · 0:41:34–0:41:56 · profesor ·
[FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md] · ⟨⟩ = corrección de transcripción [INFERENCIA] (el ASR escribe «de griega»)
La transcripción no dice dónde
señaló; que el valor raro esté entre los datos es la lectura habitual de
ese dibujo y coincide con lo que un compañero describió minutos después: una curva
de grado muy alto que pasa por todos los puntos y hace ondas entre ellos
[FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md · 0:47:23–0:47:38]
[INFERENCIA].
Antes de mover nada: abajo hay 8 árboles [DATITO] y un polinomio de
grado 7 que pasa exactamente por los 8 (error de
entrenamiento cero). Consultas un radio de 8,5 cm, entre el
árbol de 8 cm (72 kg) y el de 10 cm (88 kg). ¿Qué esperas?
Respuesta correcta y cómo se resuelve
Respuesta:puede salir un valor que no sigue la
tendencia: aquí, unos 50 kg, menos que el árbol de 8 cm.
Cómo se resuelve: 1) un polinomio de grado 7 tiene 8
coeficientes, tantos como datos: puede pasar exacto por los 8; 2) para lograrlo se
curva entre los puntos, sobre todo cerca de los bordes; 3) en 8,5 cm la curva baja
hasta ~50 kg, aunque los vecinos pesan 72 y 88 kg; 4) con grado 1 la predicción
queda en ~76 kg, entre los vecinos [DATITO: valores calculados con los datos
ilustrativos de este lienzo].
Error típico: creer que dentro del rango observado el modelo
siempre interpola bien. Eso vale para un modelo simple; uno que memorizó los
datos puede fallar justo entre ellos. Tampoco da error: la fórmula está definida
para cualquier radio.
De dónde sale: el ejemplo del grado 10
del profesor
[FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md · 0:41:34–0:41:56];
los números son [DATITO].
–
Peso predicho
–
Vecinos medidos
–
¿Sigue la tendencia?
–
Error de entrenamiento (MSE)
8 árboles, cifras
ilustrativas [DATITO]. «Sigue la tendencia» aquí significa: la predicción queda
entre los pesos de los dos árboles medidos que la rodean [DATITO].
Lo que acabas de ver. El grado 7 tiene error de entrenamiento
cero y, aun así, dentro del rango observado predice que un árbol
de 8,5 cm pesa menos que uno de 8 cm. Estar «dentro del rango» no protege: lo que
protege es que el modelo no haya memorizado los datos. Es el caso de la
P7 del Certamen 2 (5 árboles, un polinomio que
pasa por todos) y el tema de
overfitting_underfitting.html.
Fuera de los puntos: extrapolar
Ahora el otro caso, con cifras ilustrativas [DATITO]: cortaste 20 árboles con
radios entre 8 y 22 cm y ajustaste la recta. Te piden uno de 45 cm.
Antes de mover nada: el modelo tiene R² ≈ 0,97
sobre esos 20 árboles. Si le pides el peso de uno de 45 cm,
¿qué hace?
Respuesta correcta y cómo se resuelve
Respuesta:devuelve un número sin más, sin
ninguna advertencia. Y por eso esa predicción no se entrega como
confiable; se declara la extrapolación o se consiguen datos en ese
rango.
Cómo se resuelve: 1) la recta ŷ = θ₀ + θ₁·x está definida para
cualquier x, así que para 45 cm entrega un valor (~430 kg) igual que para 18 cm;
2) el R² ≈ 0,97 se midió con árboles de 8 a 22 cm: dice que la recta describe bien
ese rango, nada sobre 45 cm; 3) fuera del rango no hay ningún dato que
confirme que la relación siga siendo recta —y en árboles no lo es, porque el peso
crece con el volumen, no en línea—; 4) por eso el número de 45 cm es una
suposición, no una estimación respaldada: o se entrega diciendo explícitamente
que es una extrapolación fuera del rango 8–22 cm, o se miden árboles de ese
tamaño y se vuelve a ajustar.
Error típico: confiar en el R² alto como si valiera para
cualquier radio, o esperar que el modelo avise. El modelo nunca avisa: la
advertencia la pone quien lo usa.
De dónde sale: generalizar es funcionar
con datos que el modelo no ha visto
[FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md · 0:42:10];
la regla de declarar el rango de validez y los números del lienzo son [DATITO].
–
Peso predicho
–
Zona
–
Confianza
El modelo siempre te devuelve un número. No tiene forma de
avisarte que está inventando. Dentro del rango observado interpola entre datos
reales; fuera, solo prolonga una recta que nadie comprobó que siga siendo recta.
Un árbol de 45 cm probablemente no pesa el doble que uno de 22: los troncos
crecen en volumen, no en línea.
4 · Tu propio proyecto lo midió
09_RESULTADOS/resultados_temporal.json
Modelo (log)
R² train 2016
R² test 2017
Brecha
Árbol de decisión
0,7523
0,6123
0,1400
Random Forest
0,9423
0,7109
0,2314
Gradient Boosting
0,8858
0,7466
0,1392
HistGradientBoosting
0,9274
0,7571
0,1703
Random Forest aprende 2016 casi perfecto —0,94— y generaliza peor que
Gradient Boosting, que aprende menos —0,89— y llega más lejos. Aprender
mejor los datos no es generalizar mejor.
El dato que suele malinterpretarse
El 29,1 % de las propiedades de 2017 están en suburbios que
no existen en 2016. Es tentador concluir que ahí está toda la degradación. No lo
está:
Modelo (log)
MAE suburbio NUEVO
MAE suburbio CONOCIDO
Diferencia
HistGradientBoosting
193.462
186.064
7.398
Gradient Boosting
198.666
189.884
8.782
Random Forest
227.081
198.531
28.550
La caída de CV a test en HistGradientBoosting es de 28.441 AUD.
La diferencia entre suburbios nuevos y conocidos es de solo 7.398.
Los suburbios nuevos explican una fracción menor: la degradación
afecta a todo 2017, no solo a las zonas nuevas. Es un año distinto, no solo un
mapa distinto.
Fíjate en Random Forest: su diferencia entre zonas nuevas y conocidas es
28.550, casi cuatro veces la de HistGradientBoosting. El modelo
que más memorizó la geografía de 2016 es el que peor se comporta donde esa
geografía no existe.
Cómo lo llamó el profesor, y cómo nombrar el mecanismo
En las presentaciones del Hito 2, comentando el proyecto Melbourne, el profesor
explicó por qué la barra de test 2017 sale más alta que la de validación cruzada
en 2016:
«Y al momento de hacer la evaluación cruzada podrían haber elegido hiperparámetro. Entonces ustedes validaron con un subconjunto de datos, pero también tomaron decisiones con ese subconjunto de datos. Y después, cuando pasaron el 2017, ese modelo funciona un poco peor.» Presentaciones Hito 2 del 4-sep · 2:08:44–2:08:58 · profesor ·
[FUENTE · Repo: 05_CLASES/transcripciones/2026-09-04T22_05_05Z_Fundamentos_en_Ciencia_de_Datos.md]
«Y es normal que funciona un poco peor porque los datos cambian un poco entre el 2016 y el 2017. Entonces el modelo está un poquito sobreajustado a los datos del 2016 y le cuesta un poco más predecir solo los datos del 2017, porque no lo ha visto antes.» Presentaciones Hito 2 del 4-sep · 2:08:58–2:09:21 · profesor ·
[FUENTE · Repo: 05_CLASES/transcripciones/2026-09-04T22_05_05Z_Fundamentos_en_Ciencia_de_Datos.md]
Su diagnóstico junta dos mecanismos que conviene poder separar al escribir
[INFERENCIA]:
Mecanismo
Qué lo produce
En Melbourne
(a)
Optimismo por haber decidido con esos datos: sobreajuste a la validación y al período
Lo que se elige mirando la validación queda algo favorecido por ella: «se podría sobreajustar el conjunto de ⟨validación⟩» [FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md · 0:49:50–0:49:59] · ⟨⟩ = corrección de transcripción [INFERENCIA]
Los modelos se compararon con K-Fold dentro de 2016 [FUENTE · Repo: 03_SCRIPTS/modelamiento_temporal.py · l. 76–89]
(b)
Cambio de distribución entre períodos
2017 no es 2016: aparecen barrios nuevos, cambia la disponibilidad de variables, puede cambiar la relación con el precio (§2)
29,1 % del test en suburbios nuevos; CouncilArea sin información en el 28,5 % de 2017 (§5)
No hay contradicción. «Un poquito sobreajustado a los datos del
2016» es exactamente eso: el modelo quedó ajustado a particularidades de 2016
—por (a) y porque (b) hizo que esas particularidades no se repitieran en 2017—.
Lo que se castiga no es la palabra «sobreajuste»: es quedarse en la
etiqueta sin decir con qué datos se decidió, qué cambió entre los
períodos y cuánto explica cada cosa. [INFERENCIA]
Con los números del proyecto no se puede partir exactamente la caída de 28.441 AUD
entre (a) y (b); lo que sí se sabe es que los suburbios nuevos explican una parte
menor (7.398). Separarlas exigiría, por ejemplo, un trozo de 2016 que no se haya
usado para ninguna decisión: si ahí también cae, es (a); lo que falte hasta 2017
es (b). [INFERENCIA]
Y conecta con una regla que el profesor dio en la Clase del 31-jul: el error de
test «debiese caer dentro» de la distribución de los errores de validación
[FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md · 0:59:31];
si no, algo raro pasa. Está en validacion_cruzada.html
§5, con el dibujo interactivo. Aplícala tú: los errores por fold están en
09_RESULTADOS/resultados_temporal.json (campo
cv2016_MAE_std).
5 · La trampa: validar no siempre puede detectarlo
Caso real de este proyecto. Se quiso saber si añadir CouncilArea
mejoraba el modelo. En validación cruzada dentro de 2016, mejoraba: ganaba 20 de
25 comparaciones pareadas.
Pero en 2017:
Situación en 2017
Filas
%
Valor conocido
5.182
71,5 %
Valor faltante
1.369
18,9 %
Categoría nunca vista en 2016
693
9,6 %
Sin información utilizable
2.062
28,5 %
En 2016 esa columna está completa: cero faltantes, 19
categorías, todas conocidas. Así que la validación cruzada dentro de 2016 mide
la feature en el único escenario donde siempre está disponible.
Ningún esquema de validación dentro de 2016 puede detectar un problema
que solo existe en 2017.
Y no es un defecto de la validación cruzada: está bien hecha. Es que mide un
problema más fácil que el real.
6 · La brecha, desarmada
Todo lo anterior se resume en una resta. Vale la pena mirarla de cerca, porque
cada término responde una pregunta distinta.
brecha = R²train − R²test
Término
Qué mide
Rol
R²train
Qué tan bien le va donde aprendió
no mide calidad
R²test
Qué tan bien le va donde nunca estuvo
esto sí mide
la resta
Cuánto de lo aprendido no se repite fuera
es el diagnóstico
Los dos números solos no
bastan. Un R² de train alto no es bueno ni malo: solo dice que el
modelo memorizó bien. Lo que informa es la distancia entre ambos, más
el nivel del segundo.
R² = 1 − SSres / SStot
Término
Qué es
Rol
SSres
Suma de los errores de tu modelo, al cuadrado
lo mueve tu modelo
SStot
Suma de los errores de predecir siempre la media
es un dato del conjunto
Aquí está la clave de por qué el
R² de train y el de test no son comparables sin más:
SStot se calcula sobre el conjunto donde estás
midiendo. Si 2017 tiene precios más dispersos que 2016, el rival cambia, y dos
R² de conjuntos distintos miden contra varas distintas.
7 · Camino inverso: te dan los números
En una prueba no te van a contar la historia: te van a dar dos números. Haz
el recorrido al revés.
Random Forest · R²train = 0,9423 · R²test = 0,7109
1 · ¿Qué dice el primer número por sí
solo?
Respuesta correcta y cómo se resuelve
Respuesta: casi nada sobre la calidad: solo que el modelo
reproduce bien los datos con los que aprendió.
Cómo se resuelve: el 0,9423 es R² de entrenamiento: el
modelo explica el 94 % de la variación de los datos con los que aprendió. Un
modelo con suficiente capacidad puede llegar ahí memorizando, incluido el
ruido.
Error típico: leerlo como «el modelo acierta el 94 %» o como
evidencia de que generaliza. El error de entrenamiento no es evidencia: es la
P7 del Certamen 2.
De dónde sale:
[FUENTE · Repo: 07_DATITO/02_REFERENCIA/material.md] para la cifra; la lectura es
[INFERENCIA].
2 · ¿Y el segundo?
Respuesta correcta y cómo se resuelve
Respuesta: ese sí mide generalización:
0,7109 sobre datos que el modelo nunca vio (2017).
Cómo se resuelve: identifica dónde se midió: en el test,
fuera del entrenamiento. Es lo único que se parece a lo que pasaría en
producción.
Error típico: compararlo sin más con el 0,9423 como si
fueran la misma vara: el R² se calcula contra la dispersión del conjunto donde
se mide (§6).
De dónde sale:
[FUENTE · Repo: 07_DATITO/02_REFERENCIA/material.md]; la definición de
generalizar, Clase del 31-jul
[FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md · 0:42:10].
3 · ¿Qué historia cuenta la
resta?
Respuesta correcta y cómo se resuelve
Respuesta: la brecha es 0,2314: casi un
cuarto de lo que el modelo «sabía» no se repitió fuera.
Cómo se resuelve: 0,9423 − 0,7109 = 0,2314. Eso significa
que buena parte de lo que aprendió eran particularidades de 2016
— combinaciones concretas de barrio, tamaño y precio que no volvieron a darse en
2017. No es que el modelo esté roto: es que aprendió cosas que no eran
generalizables.
Error típico: atribuir toda la brecha a una sola causa. Parte
es memorización de 2016 y parte es que 2017 es distinto (§4).
De dónde sale:
[FUENTE · Repo: 07_DATITO/02_REFERENCIA/material.md]; la interpretación es
[INFERENCIA].
4 · ¿Cómo se compara con los
demás?
Respuesta correcta y cómo se resuelve
Respuesta: Gradient Boosting generaliza mejor que Random
Forest aunque aprende menos: para producción se elige Gradient Boosting.
Modelo
train
test
brecha
Gradient Boosting
0,8858
0,7466
0,1392
Random Forest
0,9423
0,7109
0,2314
Gradient Boosting aprende menos —0,886 frente a 0,942— y
generaliza mejor —0,747 frente a 0,711.
Aprender mejor los datos no es generalizar mejor. Si
tuvieras que elegir uno para producción, el número que decide es el segundo, no
el primero.
Error típico: elegir Random Forest por su 0,9423.
De dónde sale:
[FUENTE · Repo: 07_DATITO/02_REFERENCIA/material.md].
Cálculo a mano
Dos modelos sobre los mismos árboles, cifras ilustrativas [DATITO]. El modelo A
(grado 1) tiene MAE de entrenamiento 9 kg; el modelo B (grado 7) pasa por todos
los puntos. Luego mides 3 árboles nuevos y anotas el error (real − predicho):
árbol nuevo 1
árbol nuevo 2
árbol nuevo 3
A · grado 1
−8
+14
−11
B · grado 7
+12
−44
+37
Calcula el MAE en los árboles nuevos de cada modelo, la brecha contra su MAE de
entrenamiento, y di cuál generaliza.
Respuesta correcta y cómo se resuelve
Respuesta: MAE nuevos A = 11 kg (brecha 2 kg) y B = 31 kg
(brecha 31 kg): generaliza A, el de grado 1.
A: (8 + 14 + 11) / 3 = 33 / 3 = 11 kg; brecha 11 − 9 =
2 kg.
B: (12 + 44 + 37) / 3 = 93 / 3 = 31 kg; su MAE de entrenamiento es
0, así que la brecha es 31 kg.
B «aprende» mejor (0 contra 9) y generaliza mucho peor (31 contra 11). Con
tres árboles nuevos la conclusión es frágil, pero la dirección es clara.
Error típico: sumar los errores con signo: para B daría
(12 − 44 + 37) / 3 ≈ 1,7 kg y parecería excelente. El MAE usa valores absolutos:
los signos no se cancelan.
De dónde sale: las cifras son
[DATITO]; que el error de entrenamiento no mide calidad es la
P7 del Certamen 2.
Transferencia: salud
Un hospital de Concepción entrenó un modelo de riesgo de reingreso con sus
pacientes de 2019 a 2023 y midió muy buen desempeño en un test de 2023. Ahora lo
quieren usar en un hospital de Chillán en 2026 [DATITO]. Di (1) qué puede haber
cambiado, usando las tres categorías del §2, (2) si hay extrapolación y dónde, y
(3) cómo validarías antes de usarlo.
Respuesta correcta y cómo se resuelve
Respuesta: pueden haber cambiado los pacientes, la forma de
registrar y la relación entre variables y reingreso; el buen desempeño de
Concepción no se traslada sin más, y hay que validarlo con datos de Chillán antes
de usarlo.
(1) Covariate shift: pacientes de otra edad, otra ruralidad, otras
enfermedades frecuentes. Cambio de captura: otro sistema de fichas, variables que
faltan o se registran distinto. Concept drift: cambios de protocolo o de
tratamiento que alteran quién reingresa.
(2) Hay extrapolación si en Chillán aparecen valores fuera del rango observado
en Concepción (por ejemplo, edades o combinaciones de diagnósticos que no
existían en el entrenamiento). Dentro del rango también puede fallar, como en el
ejemplo del grado 7.
(3) Validar como se va a usar: con datos de Chillán y posteriores al
entrenamiento, aunque sean pocos, antes de confiar en el número de Concepción; y
declarar el rango de validez. [DATITO]
Error típico: «funcionó muy bien en el test de 2023, así que
funcionará en Chillán». El test de 2023 era del mismo hospital: no representa el
uso nuevo.
De dónde sale: las tres categorías del
§2 y el ejemplo de la máquina del profesor (predecir lo que viene, no lo que ya
pasó)
[FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md · 0:42:16–0:42:24];
el caso de salud es [DATITO].
Distinción de certamen.Error de entrenamiento ≠ calidad
del modelo (P7 del Certamen 2) y
sobreajuste ≠ subajuste ≠ error alto
(P2 del Certamen 2: el sobreajuste es predecir
bien en entrenamiento y no generalizar a datos que no se han visto). Las dos se
resuelven con la definición del profesor: generalizar es funcionar con datos que
el modelo no vio. Sobreajuste y subajuste con más detalle en
overfitting_underfitting.html.
8 · Qué hacer al respecto
Estrategia
Qué consigue
Validar como vas a usar
Si vas a predecir el futuro, valida contra el futuro: corte temporal, no aleatorio
Mirar la distribución del test, no su target
Cuántos faltantes, cuántas categorías nuevas. Es información legítima: en producción también la tendrías
Preferir modelos con menor brecha
Aunque su rendimiento interno sea menor. Gradient Boosting sobre Random Forest
Declarar el rango de validez
«Este modelo se entrenó con radios de 8 a 22 cm» es parte del entregable, no una nota al pie
Monitorear después
El ciclo vuelve al requerimiento. Un modelo en producción se degrada solo
9 · Procedimiento para el papel
ANTE UNA PREGUNTA DE GENERALIZACIÓN
1. ¿DÓNDE SE MIDIÓ? dentro o fuera del entrenamiento
2. ¿LA BRECHA? train vs test, no un número solo
3. ¿QUÉ CAMBIÓ ENTRE AMBOS? features · disponibilidad · la relación
4. ¿LA VALIDACIÓN PODÍA VERLO? si el problema solo existe fuera, no
5. ¿SE PIDE PREDECIR FUERA DEL RANGO OBSERVADO?
sí → es extrapolación: se declara, no se entrega sin más
6. NOMBRAR EL MECANISMO no la etiqueta
10 · Errores que el formato castiga
Error
Por qué está mal
«Generaliza bien porque el R² de entrenamiento es alto»
El entrenamiento no mide generalización. Nunca
Nombrar la caída entre validación y test con una sola etiqueta —«sobreajuste» o «cambio de distribución»— sin el mecanismo
El profesor la llamó «un poquito sobreajustado a los datos del 2016» y dio las dos razones: se decidió con ese subconjunto y los datos cambian entre años (§4). Hay que decir con qué datos se decidió, qué cambió y cuánto explica cada cosa
Entregar una extrapolación sin advertirla
El modelo devuelve un número aunque no tenga datos para respaldarlo
Creer que dentro del rango observado el modelo es confiable
Un polinomio de grado alto puede dar un valor absurdo entre los datos (§3, el ejemplo del profesor)
Atribuir toda la caída a una sola causa
Hay que comprobar la magnitud: 7.398 no explican 28.441
Suponer que validar bien garantiza generalizar
La validación solo mide los escenarios que puede observar
Antes de cerrar: explícaselo a alguien.
Un compañero sostiene: «el modelo tiene R² de 0,94, así que generaliza muy
bien».
¿Tiene razón? Justifícalo con las dos cifras de Random Forest y di qué
número habría que mirar en su lugar.
Es el formato exacto de tu profesor: verdadero o falso, con justificación.
Y poder explicárselo a otro es la prueba de que lo entiendes. Escríbelo y llévalo
a Datito.
Respuesta correcta y cómo se resuelve
Respuesta:no tiene razón: 0,94 es el R² de
entrenamiento, que no mide generalización; el número que importa es el de test,
0,7109.
Respuesta modelo: «Falso. El 0,94 es el R² de Random Forest
sobre los mismos datos de 2016 con los que aprendió: dice que los reproduce bien,
no que funcione con datos nuevos. Generalizar es funcionar con datos que el modelo
no ha visto, y eso lo mide el test: sobre 2017 el R² baja a 0,7109, una brecha de
0,2314. Casi un cuarto de lo que parecía saber no se repitió fuera, en parte
porque aprendió particularidades de 2016 y en parte porque 2017 trae barrios y
condiciones nuevas. Para decir si generaliza hay que mirar el R² de test y su
distancia al de entrenamiento; con esos números, Gradient Boosting, que aprende
menos, generaliza mejor.»
Cómo se resuelve: 1) identifica dónde se midió el 0,94:
entrenamiento; 2) busca la cifra fuera de muestra: 0,7109; 3) calcula la brecha;
4) di qué número hay que mirar y por qué.
Criterios de corrección: dice falso; distingue entrenamiento de
test; usa las dos cifras y la brecha; nombra el mecanismo si usa la palabra
sobreajuste.
Error típico: responder «verdadero, porque 0,94 es un R²
alto». Un R² alto de entrenamiento es compatible con un modelo que memorizó.
De dónde sale: cifras
[FUENTE · Repo: 07_DATITO/02_REFERENCIA/material.md]; definición de generalizar
[FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md · 0:42:10];
distinción de la P7 del Certamen 2.
A dónde seguir.
train_validation_test.html —
de dónde viene esto. Si la partición está mal hecha, la brecha que mides aquí
no significa lo que crees.
validacion_cruzada.html — cómo
se estima la generalización antes del test, y dónde debería caer el error de
test.
Vuelve a tu activación: Tu recta tiene R² = 0,93 con árboles de 8 a 22 cm de radio. Te piden el peso de uno de 45 cm. ¿Lo entregas? ¿Cambiarías tu respuesta?
Pregunta final. El 29,1 % del test de 2017 son suburbios que no existen en los datos de 2016. ¿Qué tipo de problema de generalización es?
Respuesta correcta y cómo se resuelve
Un cambio de distribución: el modelo predice casos con un valor (el suburbio) que nunca vio, y solo puede apoyarse en variables que sí vio, como ubicación y tipo. [FUENTE · Repo: 09_RESULTADOS/resultados_temporal.json]
El cierre es una síntesis de la clase [DATITO]: cada afirmación tiene su fuente en el cuerpo de este visual. Fuente del cierre: 07_DATITO/clases.yaml.
Lo que se trabajó en las sesiones sobre este tema, para volver a leerlo y re-intentarlo. Primero responde tú; después abre la respuesta. Fuente: 07_DATITO/dudas.yaml.
Pregunta. En Melbourne, el MAE de validación cruzada en 2016 y el de test en 2017 fueron: baseline (mediana) 449.160 → 431.649 (mejora 17.511); árbol de decisión 219.821 → 246.568 (empeora 26.747); HistGradientBoosting 159.777 → 188.218 (empeora 28.441). ¿Por qué el baseline mejora al pasar a 2017 mientras los modelos empeoran, y por qué el mejor modelo es el que más empeora?
Lo que respondiste en la sesión: Intento 1: «entonces, podemos hablar de un sobreajuste». Intento 2: «el modelo fue entrenado con datos del 2016, pero un modelo que deberías validar, o que debería probar es gradient boosting, o random forest».
Respuesta correcta y cómo se resuelve
Respuesta. El baseline no aprendió nada de 2016 salvo un número (la mediana, 900.000), así que su error solo refleja qué tan dispersos están los precios del año que mide; los modelos aprendieron relaciones de 2016 que en 2017 valen menos, y además fueron elegidos mirando 2016, por eso el más ajustado a 2016 es el que más pierde.
El baseline: predecir siempre 900.000 da MAE 449.122 sobre los precios de 2016 y 431.649 sobre los de 2017 (este último es exactamente su MAE de test). Los precios de 2017 están algo menos dispersos alrededor de 900.000. La «mejora» es una propiedad de los datos, no del modelo.
Los modelos: aprendieron cómo se relacionan ubicación, tipo y tamaño con el precio EN 2016. En 2017 el 29,1 % de las propiedades están en suburbios que no existían en 2016: parte de lo aprendido ya no aplica (cambio de distribución).
El mejor es el que más empeora (HGB +17,8 %, 159.777 → 188.218; árbol +12,2 %): es el que más estructura fina de 2016 capturó, y además fue ELEGIDO por tener el menor error en 2016, así que su número de validación es optimista.
Así lo dijo el profesor al comentar este mismo proyecto: los datos «cambian un poco entre el 2016 y el 2017» y «también tomaron decisiones con ese subconjunto de datos», y lo llamó «un poquito sobreajustado a los datos del 2016». Son dos mecanismos: optimismo por selección y cambio de distribución.
Por qué no basta decir «sobreajuste»: las dos columnas de la tabla son datos que el modelo no usó para entrenar. Sin nombrar el mecanismo, la etiqueta no explica por qué el baseline mejora.
Error típico. Poner la etiqueta «sobreajuste» sin mecanismo, o proponer otro modelo sin leer que la tabla ya contiene los resultados del propio proyecto.
[FUENTE · Repo: 09_RESULTADOS/resultados_temporal.json] MAE de CV 2016 y test 2017 [FUENTE · Repo: 02_DATOS/housing_dashai_2016_2017.csv + 09_RESULTADOS/dashai_split_indices.json] MAE de predecir 900.000: 449.122 (2016) y 431.649 (2017), calculado el 2026-09-21 [FUENTE · Repo: 05_CLASES/transcripciones/2026-09-04T22_05_05Z_Fundamentos_en_Ciencia_de_Datos.md · 2:08:49–2:09:16] comentario del profesor [INFERENCIA] la descomposición en dos mecanismos Contexto de la sesión: 07_DATITO/07_BITACORA/2026-09-18-train_validation_test.md
Pregunta. Cortaste 20 árboles y ajustaste la recta: R² = 0,93. Tu jefe te pide predecir el peso de un árbol de radio 45 cm. Los 20 árboles tenían radios entre 8 y 22 cm. ¿Le entregas la predicción? Justifica.
Respuesta correcta y cómo se resuelve
Respuesta. No como una predicción confiable: 45 cm está fuera del rango observado (8–22 cm), es una extrapolación; si se entrega, va con esa advertencia explícita, y lo correcto es medir árboles de ese tamaño.
El rango de tus datos es 8–22 cm. 45 cm es más del doble del máximo: el modelo nunca vio un árbol así.
R² = 0,93 mide el ajuste a los 20 árboles con que ajustaste la recta, todos dentro de 8–22 cm. No dice nada fuera de ese rango.
El modelo igual devuelve un número. Con la recta de la página (θ₁ ≈ 9,72 kg por cm, θ₀ ≈ −6,9 kg): ŷ = −6,9 + 9,72·45 ≈ 430 kg. Tener un número no es tener evidencia.
El peso crece con el volumen (aprox. radio² × altura), más rápido que una recta: con árboles grandes la recta probablemente se queda corta.
Qué haces: entregas el número declarando la extrapolación y por qué no es confiable, o mides árboles grandes y vuelves a ajustar.
Frase para la prueba: «No la entrego como confiable: 45 cm está fuera del rango observado (8–22 cm), así que es extrapolación. El R² de 0,93 mide el ajuste solo dentro de ese rango.»
Error típico. Creer que un R² alto autoriza a predecir en cualquier parte; el R² se calculó solo donde había datos.
[FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md · 0:42:10] generalizar: funcionar para datos que no ha visto antes [FUENTE · Repo: 07_DATITO/02_REFERENCIA/clase6_regresion.html] los 20 árboles y la recta de mínimos cuadrados [INFERENCIA] «extrapolación»: el profesor no usa esa palabra en las 14 transcripciones [DATITO] el argumento físico del volumen Contexto de la sesión: 07_DATITO/07_BITACORA/2026-09-21-regresion_generalizacion.md
21-sep · práctica: intenta antes de abrir la respuesta · Generalizacion, Regresion
Pregunta. (Transferencia) Un agrónomo ajustó una recta de rendimiento contra lluvia con datos entre 300 y 600 mm, y le piden predecir un año de 1.200 mm. ¿Qué le dices?
Respuesta correcta y cómo se resuelve
Respuesta. Que no la entregue como confiable: 1.200 mm está al doble del máximo observado, es una extrapolación; y en agronomía es esperable que el rendimiento deje de subir o caiga con exceso de agua, justo lo que una recta no puede mostrar.
Reconoce el concepto sin que te lo nombren: es el mismo problema del árbol de 45 cm en otro dominio.
Rango observado 300–600 mm; 1.200 mm está fuera: extrapolación.
La recta sigue subiendo para siempre; el cultivo no: con exceso de agua hay anegamiento, enfermedades y lavado de nutrientes. Fuera del rango, la forma de la relación puede cambiar por completo.
Qué hacer: declarar la extrapolación, buscar datos de años muy lluviosos (o de otra zona con esa lluvia), o no entregar número.
Error típico. Tratarlo como un problema nuevo en vez de reconocer la misma estructura (predicción fuera del rango).
[DATITO] el caso y el argumento agronómico [FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md · 0:42:10] generalizar: datos que no ha visto antes Contexto de la sesión: 07_DATITO/07_BITACORA/2026-09-21-regresion_generalizacion.md