Objetivo. Calcular la impureza de Gini de un corte y explicar cómo el árbol elige sus preguntas.
- Evidencia de aprendizaje: Calcula el Gini ponderado de dos cortes y elige el mejor.
- Actividad final: El ejercicio de Gini con los números del profesor.
- Criterio de dominio: Obtiene 0,46875 para un nodo con 3/8 y 5/8, y elige el corte de mayor ganancia.
Objetivo. Explicar por qué combinar modelos mejora solo si sus errores no están correlacionados.
- Evidencia de aprendizaje: Distingue número de modelos de diversidad, y explica el bootstrap de filas y los atributos al azar.
- Actividad final: El simulador de votación con correlación entre errores.
- Criterio de dominio: Argumenta con la correlación de los errores (C2 P1) y explica la importancia de variables por conteo.
Arboles de Decision y Ensambles
Complejos, interpretables, sesgo-varianza
- Sacas un triángulo con probabilidad 1/4. Si pasa, dices «todo es triángulo» y fallas en los 3 círculos: error 3/4.
- Sacas un círculo con probabilidad 3/4. Dices «todo es círculo» y fallas en el triángulo: error 1/4.
- Error esperado = 1/4 · 3/4 + 3/4 · 1/4 = 3/16 + 3/16 = 0,375.
Si el conjunto fuera solo círculos, siempre sacarías un círculo y nunca fallarías: 0. Si fuera mitad y mitad, 1/2 · 1/2 + 1/2 · 1/2 = 0,5, el máximo con dos clases. Gini alto = mezclado. Gini 0 = puro.
Las láminas 27, 28 y 29 usan tres conjuntos de 8 figuras. Calcula el Gini de cada uno con el juego de arriba, sin mirar la lámina:
(a) 3 triángulos y 5 círculos · (b) 1 triángulo y 7 círculos · (c) 0 triángulos y 8 círculos. En (c) explica además por qué da lo que da: fue la pregunta que el profesor le hizo al curso.
Respuesta correcta y cómo se resuelve
Respuesta: (a) 0,46875; (b) 0,21875; (c) 0, porque en un conjunto puro nunca te equivocas al predecir todo con la clase del objeto que sacaste.
Cómo se resuelve:
- (a) P(△) = 3/8 y su error 5/8; P(○) = 5/8 y su error 3/8. Gini = 3/8 · 5/8 + 5/8 · 3/8 = 15/64 + 15/64 = 30/64 = 0,46875.
- (b) P(△) = 1/8 y su error 7/8; P(○) = 7/8 y su error 1/8. Gini = 7/64 + 7/64 = 14/64 = 0,21875.
- (c) P(△) = 0 y P(○) = 1, pero el error de haber sacado un círculo es 0, porque no hay ningún triángulo que clasificar mal: 0 · 1 + 1 · 0 = 0. Así lo razonó el profesor [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:23:36–1:23:50].
- Lectura: (a) es el más mezclado, (b) está más cerca de puro, (c) es puro.
Error típico: sumar las probabilidades sin multiplicarlas por su error (siempre da 1), o leer el número al revés y creer que 0,47 es «más puro» que 0,22. Otro: quedarse con el redondeo que se dijo en clase, «0,46» y «0,21 o 0,22» [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:22:57–1:23:05]; los valores exactos son los de la lámina. En el papel, escribe la fracción antes del decimal.
De dónde sale: láminas 27, 28 y 29 [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 27].
Recién ahora, la notación
| C | número de clases (en el ejemplo, 2) dato |
| N | número de puntos en el nodo dato |
| Ni | puntos de la clase i en ese nodo dato |
| Ni/N | probabilidad de sacar la clase i: el primer factor del juego |
| 1 − Ni/N | el error si sacaste la clase i: el segundo factor |
Fórmula de la lámina 29 [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 29], dicha en clase para C clases [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:22:31–1:22:53]. Con dos clases se reduce a 2·p·(1 − p), con p la proporción de una de ellas [INFERENCIA]. Nada de esto lo aprende el modelo: es una regla para medir nodos. Lo que decide la persona es qué medida usar.
Con una medida por nodo, un corte se juzga comparando al padre con sus hijos:
| A | nodo padre, antes del corte dato |
| B, C | los dos hijos que deja el corte |
| I( ) | impureza de un nodo: Gini, entropía o error de clasificación decisión |
| N(B)/N(A) | peso del hijo B: qué fracción de los puntos del padre se fue a B |
| ΔI | ganancia de pureza: cuánta mezcla eliminó el corte el algoritmo la calcula para cada corte candidato |
La lámina 31 dice «Comparar: impureza del nodo padre · impureza de los nodos hijos» [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 31]; la fórmula escrita es la que transcribe el resumen híbrido de esa lámina [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/Resumen_Clase7_Clasificacion.md · lámina 18 del resumen, §7.7.6]. El peso lo explicó el profesor: si hay muchos objetos en un lado, esa impureza pesa más que la del otro [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:27:26–1:27:37].
Reconstruye el fenómeno desde la fórmula: (1) ¿cuánto vale en un nodo puro, y por qué? (2) ¿Cuándo es máxima con dos clases, y cuánto vale? (3) ¿Puede un corte dejar la impureza ponderada peor que la del padre?
Respuesta correcta y cómo se resuelve
Respuesta: (1) vale 0; (2) es máxima con mitad y mitad, y vale 0,5; (3) con Gini, no: la ganancia de un corte nunca es negativa.
Cómo se resuelve:
- (1) En cada término de la suma, o Ni/N = 0 (la clase no está) o 1 − Ni/N = 0 (es la única). Todos los términos son 0.
- (2) Con dos clases, IG = 2·p·(1 − p): una parábola que vale 0 en p = 0 y en p = 1 y tiene su máximo en p = 0,5, donde da 2 · 0,5 · 0,5 = 0,5.
- (3) Las proporciones del padre son el promedio ponderado de las de sus hijos, y el Gini es una curva «hacia abajo» (cóncava): el promedio ponderado de los Gini de los hijos nunca supera al Gini del padre. Ejemplo: el corte C del plano de abajo casi no sirve, y aun así su ganancia es positiva (≈ 0,035).
- Consecuencia: si cortar nunca empeora la cuenta, el algoritmo necesita otra razón para detenerse. Esa razón son los criterios de la lámina 33, más abajo.
Error típico: pensar que el árbol se detiene solo «cuando cortar ya no mejora». Con Gini siempre mejora o empata, así que sin frenos corta hasta dejar hojas puras.
De dónde sale: fórmula de la lámina 29 [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 29]; (2) [INFERENCIA]; (3) [DATITO].
Tres medidas, y quién elige entre ellas
| Medida (lámina 30) | Fórmula | Máximo con 2 clases | En palabras |
|---|---|---|---|
| Gini | Σ pi(1 − pi) | 0,5 | error esperado del juego de sacar un objeto |
| Entropía | −Σ pi log₂ pi | 1 | información promedio del experimento de sacar un dato |
| Error de clasificación | 1 − máx pi | 0,5 | error si clasificas todo de una misma forma (la clase mayoritaria) |
Medidas de la lámina 30 [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 30]; máximos de Gini (0,5) y entropía (1) dichos en clase [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:24:41–1:24:56]; el del error de clasificación sale de la fórmula [INFERENCIA]. Ojo: el resumen híbrido advierte que la lámina 30 imprime la entropía sin el signo menos; con el signo queda positiva y coincide con la curva de la lámina [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/Resumen_Clase7_Clasificacion.md · lámina 18 del resumen].
¿Cuál conviene? Un compañero lo preguntó, y la respuesta vino como otra pregunta: ¿cómo se llama algo que tienes que escoger antes de ajustar el modelo?
Muévelo tú: tres cortes candidatos sobre los 17 puntos
El plano reproduce el ejemplo del profesor: 9 triángulos y 8 círculos. Los conteos son los suyos; las posiciones exactas son inventadas para que sus cortes funcionen [DATITO]. Tres candidatos para el primer corte:
- A · x₁ ≤ 4: el primer corte del profesor, 1△ 6○ | 8△ 2○.
- B · x₁ ≤ 6,5: deja un lado casi puro, 5△ 1○.
- C · x₂ ≤ 8,3: deja un hijo 100 % puro.
Respuesta correcta y cómo se resuelve
Respuesta: gana el corte A (x₁ ≤ 4, el del profesor), con ganancia ≈ 0,209, contra ≈ 0,101 de B y ≈ 0,035 de C.
Cómo se resuelve (Gini):
- Padre, 9△ 8○: 2·(9/17)(8/17) = 144/289 ≈ 0,4983.
- A: hijos 1△ 6○ (≈ 0,2449) y 8△ 2○ (0,3200). Ponderada 7/17 · 0,2449 + 10/17 · 0,3200 ≈ 0,2891. Ganancia ≈ 0,4983 − 0,2891 = 0,2092.
- B: hijos 4△ 7○ (≈ 0,4628) y 5△ 1○ (≈ 0,2778). Ponderada 11/17 · 0,4628 + 6/17 · 0,2778 ≈ 0,3975. Ganancia ≈ 0,1008.
- C: hijos 9△ 7○ (≈ 0,4922) y 1○ (0). Ponderada 16/17 · 0,4922 ≈ 0,4632. Ganancia ≈ 0,0350.
Error típico: elegir C porque «deja un hijo puro», o B porque «deja un lado casi puro». Es mirar un solo hijo y olvidar la ponderación por tamaño: un hijo de 1 punto pesa 1/17, y el otro hijo, que pesa 16/17, queda casi tan mezclado como el padre.
De dónde sale: los conteos del corte A son del profesor [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:15:32–1:15:40]; la fórmula de ganancia, de la lámina 31 [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 31]; las posiciones y los cortes B y C son [DATITO].
Prueba también: cambia la medida y vuelve a buscar el mejor corte. En este plano gana el mismo corte con las tres medidas; con error de clasificación, tres cortes distintos empatan en el segundo lugar (ganancia 0,2353), porque esa medida solo mira la clase mayoritaria y es la más gruesa para distinguir cortes [DATITO · cifras de este plano ilustrativo]. El corte A es el que el profesor hizo en clase; su ganancia (≈ 0,2092) no la calculó él: la desarrolla el resumen híbrido [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/Resumen_Clase7_Clasificacion.md · lámina 18 del resumen] y la reproduce el plano.
Después del primer corte, el profesor cortó cada mitad por x₂ [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:15:40–1:16:05]: la izquierda (1△ 6○) quedó en 1△ 1○ arriba y 5○ abajo; la derecha (8△ 2○), en 1○ arriba y 8△ 1○ abajo. El botón «Ver el árbol completo del profesor» lo dibuja, pero no calcula estas ganancias.
(a) Calcula con Gini la ganancia de cada uno de esos dos cortes (cada mitad es ahora el «padre»). ¿Cuál limpió más? (b) Escribe la probabilidad que entrega cada una de las cuatro hojas. (c) Un objeto nuevo cae en la hoja 8△ 1○ y tu regla es decir «triángulo» solo si P(△) ≥ 0,9. ¿Qué respondes?
Respuesta correcta y cómo se resuelve
Respuesta: (a) el corte de la izquierda gana ≈ 0,102 y el de la derecha ≈ 0,142: limpió más el de la derecha; (b) las hojas entregan 50 % círculo, 100 % círculo, 100 % círculo y 89 % triángulo; (c) respondes «círculo» (no triángulo), porque 0,89 no llega a 0,9.
Cómo se resuelve:
- Izquierda. Padre 1△ 6○: 2·(1/7)(6/7) = 12/49 ≈ 0,2449. Hijos: 1△ 1○ → 0,5; 5○ → 0. Ponderada: 2/7 · 0,5 + 5/7 · 0 ≈ 0,1429. Ganancia ≈ 0,2449 − 0,1429 = 0,102.
- Derecha. Padre 8△ 2○: 2·(8/10)(2/10) = 0,32. Hijos: 1○ → 0; 8△ 1○ → 2·(8/9)(1/9) = 16/81 ≈ 0,1975. Ponderada: 1/10 · 0 + 9/10 · 0,1975 ≈ 0,1778. Ganancia ≈ 0,32 − 0,1778 = 0,142.
- Hojas: 1△ 1○ → 1/2 = 50 % círculo (el caso que comentó el profesor) · 5○ → 100 % círculo · 1○ → 100 % círculo · 8△ 1○ → 8/9 ≈ 89 % triángulo.
- Umbral: P(△) = 0,89 < 0,9, así que la regla no dice «triángulo». La hoja es la misma; cambió el umbral. La clase la decide quien fija el umbral, no el árbol.
Error típico: usar como «padre» el nodo raíz (9△ 8○) en vez de la mitad que se está cortando; o, en (c), responder «triángulo» porque es la clase mayoritaria de la hoja, sin aplicar el umbral.
De dónde sale: conteos del profesor [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:15:40–1:16:05]; él no calculó estas ganancias en clase: la aritmética es de Datito [INFERENCIA].
El algoritmo, y cuándo parar
La lámina 32 lo escribe como receta, el algoritmo C4.5: mientras no se cumpla algún criterio de convergencia, para cada atributo calcula la ganancia de dividir en ese atributo; quédate con el de mayor ganancia; crea un nodo que separe según él, y aplica lo mismo a cada subconjunto [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 32]. El botón «Buscar el mejor corte» hace exactamente el primer paso.
La lámina 33 lista cuándo parar: el nodo contiene una sola clase; contiene menos objetos que un valor deseado; se alcanzó una altura máxima; la pureza es suficiente; o se comienza a sobreajustar, lo que se detecta con validación cruzada [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 33].
Pregunta estilo certamen: ¿la ganancia de pureza se usa para evaluar un modelo de clasificación?
Respuesta correcta y cómo se resuelve
Respuesta: no. La ganancia de pureza sirve para construir el árbol; en la P4, las alternativas que sí evalúan un clasificador eran el área bajo la curva ROC, la tasa de falsos positivos y la exactitud.
Cómo se resuelve:
- Pregúntate qué compara: la ganancia compara la impureza del nodo padre con la de sus hijos (lámina 31).
- Pregúntate cuándo se usa: dentro de C4.5, para elegir el atributo y el corte (lámina 32), mientras el árbol se construye.
- Una métrica de evaluación compara predicciones con etiquetas reales de datos que el modelo no usó (exactitud, tasa de falsos positivos: lámina 18; ROC: láminas 22–24). La ganancia no hace eso: queda fuera.
Error típico: marcarla porque «suena a calidad del modelo». Criterio para construir ≠ métrica para juzgar.
De dónde sale: análisis de la P4 [FUENTE · Repo: 07_DATITO/04_EJERCICIOS/certamen_2.html · P4] y láminas 18, 31 y 32 [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 31].
El árbol sin límite: una máquina de sobreajustar
[DATITO] Como con Gini cortar nunca empeora la cuenta, un árbol sin criterio de parada sigue cortando hasta que cada hoja queda pura; en el extremo, una hoja por dato. En entrenamiento acierta todo. En datos nuevos, cada hoja de un solo punto es una opinión basada en un único ejemplo, ruido incluido. Es el patrón «bueno dentro, malo fuera» de overfitting_underfitting.html. Los criterios de la lámina 33 —altura máxima, mínimo de objetos por nodo, validación cruzada— son precisamente los frenos.
En Melbourne, tu árbol de decisión sobre log1p(Price) obtuvo R² 0,7523
en train 2016 y 0,6123 en test 2017
[FUENTE · Repo: 07_DATITO/02_REFERENCIA/material.md]. Estaba configurado con
max_depth=8, min_samples_leaf=20
[FUENTE · Repo: 03_SCRIPTS/modelamiento_temporal.py · línea 58].
(a) Calcula la brecha. (b) ¿Es el «árbol sin límite» de esta sección? ¿Qué número lo delata? (c) ¿Toda la brecha es sobreajuste? Nombra la otra causa que existe en tu proyecto.
Respuesta correcta y cómo se resuelve
Respuesta: la brecha es 0,1400; no es un árbol sin límite (su R² de train, 0,75, lo delata); y no toda la brecha es sobreajuste, porque parte es el cambio entre 2016 y 2017.
Cómo se resuelve:
- (a) Brecha = R² train − R² test = 0,7523 − 0,6123 = 0,1400.
- (b) Un árbol sin límite llega a un R² de train cercano a 1, porque sus hojas terminan casi con una casa cada una [INFERENCIA]. El 0,7523 de train dice que los frenos (profundidad 8, hojas de al menos 20 casas) le impidieron memorizar; tanto, que también es el peor de tus cuatro modelos de árboles en test. Este árbol, además de la brecha, se queda corto.
- (c) Train es 2016 y test es 2017: parte de la caída viene del cambio entre años (el 29,1 % del test está en suburbios que no existen en el train). El sobreajuste en estricto se mide train contra validación dentro del mismo período [INFERENCIA]. Ver generalizacion.html.
Error típico: diagnosticar «sobreajuste» solo porque test es menor que train, sin calcular la brecha ni mirar el nivel de train; y atribuir toda la caída de 2016 a 2017 al sobreajuste. Los dos errores están registrados en tu historial.
De dónde sale: cifras de [FUENTE · Repo: 07_DATITO/02_REFERENCIA/material.md]; configuración de [FUENTE · Repo: 03_SCRIPTS/modelamiento_temporal.py · línea 58]; lectura [INFERENCIA].
Y el cierre del tema en clase, que explica por qué esta página no termina aquí:
2 · Random Forest
La idea: la sabiduría de los grupos
La lámina 35 cita a James Surowiecki: «El conocimiento colectivo de un grupo diverso e independiente de personas generalmente excede el conocimiento de cualquier individuo y puede aprovecharse mediante la votación» [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 35]. En clase, el profesor le puso la condición en voz alta, y se corrigió a medio camino:
Y el ejemplo con el que lo aterrizó:
Dos opiniones idénticas valen una. Esa es la idea que evaluó la P1 del Certamen 2: la distinción está marcada en la sección 4, con un simulador.
Cómo se consigue que los árboles no sean clones
Lámina 36: un árbol solitario no suele predecir muy bien, pero es muy rápido; la idea es usar muchos, asegurándose de que no aprendan todos exactamente lo mismo [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 36]. La lámina 37 dice cómo [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 37]:
- Se entrenan n árboles.
- Para cada árbol se seleccionan al azar N puntos con reemplazo (bootstrapping): el árbol ve una muestra de filas del mismo tamaño que la original, con algunas repetidas y otras ausentes.
- Cada árbol se entrena usando m atributos seleccionados al azar.
- Predicción: se promedia la predicción hecha por los árboles.
| Qué se sortea | Cómo | Qué consigue |
|---|---|---|
| Filas | N puntos con reemplazo (bootstrap) | cada árbol ve datos algo distintos |
| Atributos (columnas) | m atributos al azar | unos árboles se especializan en unos atributos y otros en otros |
El profesor lo cerró diciendo que igual queda solapamiento, «cierta correlación» [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:31:37–1:31:41]: la versión corregida de la sabiduría de los grupos, puesta en práctica.
Cómo vota el bosque, y por qué entrega una probabilidad
Es la lámina 37 («promediar la predicción hecha por los árboles») llevada a clasificación: la probabilidad de una clase es la fracción de árboles que la votan. El P5 lo escribe f(x) = (1/N) Σ fi(x) [FUENTE · Repo: 06_LABORATORIOS/2026_[P5]Clasificación(vacio).ipynb]. En regresión —tu Melbourne— se promedian los precios que predice cada árbol [INFERENCIA]. La lámina 38 lo llama «uno de los algoritmos más certeros que se conocen», y en clase agregó que en general uno comienza con un random forest [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:32:33–1:32:39].
Importancia de variables: contar
Lámina 38: el bosque permite estimar la importancia de las variables «contando cuántas veces cada variable fue escogida por cada árbol como relevante» [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 38]. Si ningún árbol eligió nunca una variable para dividir, esa variable es «cero relevante» [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:33:09–1:33:15]. Un compañero preguntó cómo se relaciona esto con elegir variables en el EDA, y el profesor improvisó un ejemplo: A escogida el 50 % de las veces, B el 20 %, C y D el 10 % cada una; A es muy relevante para clasificar [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:34:46–1:35:10]. ⚠ Esos porcentajes suman 90 %: era un ejemplo al vuelo, no un dato.
[DATITO · cifras ilustrativas] Un bosque de 4 árboles clasifica rodales de pino en «listo para cosecha» o «no listo». Variables disponibles: diámetro, altura, pendiente, especie y tipo de suelo. Cada árbol usó estas variables en sus divisiones:
| Árbol | Variables usadas para dividir | Voto para el rodal R |
|---|---|---|
| 1 | diámetro, altura, diámetro | listo |
| 2 | diámetro, pendiente | listo |
| 3 | altura, diámetro, especie | no listo |
| 4 | diámetro, altura, diámetro | listo |
(a) ¿Qué entrega el bosque para el rodal R? (b) Calcula la importancia de cada variable por conteo, como en la lámina 38. (c) El tipo de suelo no aparece en ningún árbol. ¿Significa que el suelo no influye en la cosecha?
Respuesta correcta y cómo se resuelve
Respuesta: (a) el bosque entrega 75 % de probabilidad de «listo»; (b) diámetro ≈ 55 %, altura ≈ 27 %, pendiente ≈ 9 %, especie ≈ 9 %, suelo 0 %; (c) no: solo significa que este bosque no usó el suelo para dividir.
Cómo se resuelve:
- (a) Votos: 3 de 4 dicen «listo» → 3/4 = 75 %, igual que el perro del profesor. Decir «listo» a secas ya supone un umbral (con 0,5, «listo»).
- (b) Cuenta todas las divisiones: 3 + 2 + 3 + 3 = 11. Diámetro aparece 2 + 1 + 1 + 2 = 6 veces → 6/11 ≈ 55 %; altura 1 + 0 + 1 + 1 = 3 → 3/11 ≈ 27 %; pendiente 1/11 ≈ 9 %; especie 1/11 ≈ 9 %; suelo 0/11 = 0 %. El orden es el mismo si cuentas en cuántos árboles aparece cada variable (diámetro 4 de 4, altura 3 de 4) [INFERENCIA].
- (c) Puede que el suelo esté relacionado con otra variable que los árboles prefirieron (por ejemplo, la especie que se planta en cada suelo), o que su efecto sea menor que el de las elegidas [DATITO]. La importancia describe al modelo, no al fenómeno: es la «intuición de lo que los modelos están haciendo» de la que habló el profesor [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:35:10].
Error típico: en (a), responder solo «listo» sin la probabilidad; en (c), leer «importancia 0» como «no influye en la realidad».
De dónde sale: votación [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 37], importancia por conteo (lámina 38) y la variable «cero relevante» [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:33:09–1:33:15]; cifras del bosque [DATITO].
En el P5, feature_importances_
de scikit-learn no cuenta usos: suma cuánta impureza redujo cada variable [DATITO]. La idea
es la misma; para el certamen, la versión de la lámina. La ayudantía del 7-ago resolvió el
P5 en vivo (árbol con plot_tree, bosque e importancias): intenta
06_LABORATORIOS/2026_[P5]Clasificación(vacio).ipynb antes de ver esa grabación
[FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T23_57_03Z_Fundamentos_en_Ciencia_de_Datos.md · 1:28:43–1:28:49].
Un árbol profundo sobreajusta. Tu Random Forest de Melbourne promedió
300 árboles con hojas de mínimo 2 casas
(n_estimators=300, min_samples_leaf=2)
[FUENTE · Repo: 03_SCRIPTS/modelamiento_temporal.py · línea 59]: árboles muy profundos.
Escribe, en 5 a 8 líneas, por qué el promedio de esos árboles puede sobreajustar
menos que cualquiera de ellos, y bajo qué condición dejaría de ser
cierto. Escríbelo antes de abrir la respuesta modelo, y llévalo a Datito.
Respuesta correcta y cómo se resuelve
Respuesta: porque cada árbol profundo memoriza un ruido distinto (vio filas y atributos distintos), y al promediar 300 árboles ese ruido particular tiende a cancelarse mientras la señal que todos comparten se conserva; deja de ser cierto si los árboles se equivocan en lo mismo (correlación alta), y con 300 clones no mejora nada.
Respuesta modelo:
«Un árbol profundo sobreajusta porque, además de la relación real entre las variables y el precio, aprende los accidentes de su muestra: sus hojas de dos casas responden a esas dos casas en particular. Si entrenara 300 árboles iguales sobre los mismos datos, los 300 memorizarían los mismos accidentes y promediarlos no cambiaría nada. Pero en el Random Forest cada árbol ve otra muestra bootstrap de filas y otros atributos, así que los accidentes que memoriza cada uno son distintos: ante una casa nueva, unos se pasan y otros se quedan cortos. Al promediar, esas desviaciones particulares se compensan y queda lo que todos comparten, que es la señal. El sobreajuste de cada árbol es varianza, y el promedio de errores poco correlacionados tiene menos varianza que cada uno. Deja de funcionar si la correlación entre árboles es alta, como advirtió el profesor; con 300 clones, el promedio sobreajusta exactamente igual que un árbol, que es la P1 del Certamen 2.»
Cómo se construye:
- Qué sobreajusta en un árbol: la parte de sus predicciones que depende de su muestra (varianza), no la señal.
- Qué introduce el bosque: filas con reemplazo y atributos al azar (lámina 37).
- Qué hace el promedio: conserva lo común y compensa lo particular. En fórmula, Var(promedio) = ρ·σ² + (1 − ρ)·σ²/n (sección 4) [DATITO].
- La condición: correlación no muy alta (ρ chico).
- El caso límite: ρ = 1 (clones), la P1.
- El matiz de tu proyecto: «sobreajusta menos» se ve en el test (RF 0,7109 contra árbol 0,6123), no en la brecha, que en el RF es la mayor (0,2314) porque cada árbol memorizó 2016 y eso no se borra en train [INFERENCIA]. Además tu árbol individual estaba limitado (profundidad 8), así que la comparación no es «árbol profundo contra bosque de árboles profundos».
Error típico: responder «porque son más modelos» (número sin mecanismo), o «porque los errores se anulan» sin la condición de correlación; y creer que el bosque debe tener menor brecha.
De dónde sale: láminas 36–38 [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 38]; condición de correlación [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:29:42–1:30:04]; cifras de [FUENTE · Repo: 07_DATITO/02_REFERENCIA/material.md]; fórmula de varianza [DATITO].
Criterios con que se corrige tu versión
- Dice qué es lo que un árbol profundo «aprende de más»: detalles de su muestra (ruido), además de la señal.
- Usa el diseño del bosque: cada árbol ve filas y atributos distintos, así que sus detalles de más son distintos entre árboles.
- Explica qué le pasa, al promediar, a lo que es común a todos los árboles y a lo que es particular de cada uno.
- Nombra la condición con las palabras del profesor (correlación no muy alta) y el caso límite de la P1.
- No confunde «sobreajusta menos» con «tiene menor brecha»: en tu tabla, el Random Forest tiene la mayor brecha (ejercicio 6).
Tus modelos sobre log1p(Price), train 2016 y test 2017 [FUENTE · Repo: 07_DATITO/02_REFERENCIA/material.md]:
| Modelo (log) | R² train | R² test | Brecha |
|---|---|---|---|
| Árbol de decisión | 0,7523 | 0,6123 | ? |
| Random Forest | 0,9423 | 0,7109 | ? |
| Gradient Boosting | 0,8858 | 0,7466 | ? |
| HistGradientBoosting | 0,9274 | 0,7571 | ? |
(a) Calcula las cuatro brechas: es el paso que el procedimiento no permite saltarse. (b) Ordena los modelos por brecha y por R² test. ¿Coinciden los órdenes? (c) El Random Forest tiene la mayor brecha. ¿Es el que peor generaliza? ¿Es el mejor? (d) ¿Qué le responderías a alguien que propone «elegir el modelo con menor brecha»?
Respuesta correcta y cómo se resuelve
Respuesta: las brechas son 0,1400 (árbol), 0,2314 (RF), 0,1392 (GB) y 0,1703 (HGB); los órdenes por brecha y por test no coinciden; el RF no es el que peor generaliza (supera al árbol en test) ni el mejor (lo superan los dos boosting); y la brecha sirve para diagnosticar, no para elegir.
Cómo se resuelve:
- (a) Resta fila por fila: 0,7523 − 0,6123 = 0,1400 · 0,9423 − 0,7109 = 0,2314 · 0,8858 − 0,7466 = 0,1392 · 0,9274 − 0,7571 = 0,1703.
- (b) Por brecha, de menor a mayor: GB, árbol, HGB, RF. Por R² test, de mayor a menor: HGB, GB, RF, árbol. No coinciden.
- (c) En test, el RF (0,7109) supera al árbol por casi 0,10. Su brecha es grande porque su R² de train es altísimo (0,9423): sus 300 árboles profundos memorizan 2016, y promediarlos no borra esa memoria en train [INFERENCIA]. Los dos boosting lo superan en test.
- (d) El árbol y GB tienen casi la misma brecha (0,1400 y 0,1392), y los separan 0,13 de R² en test. Se elige por desempeño fuera de muestra —validación cruzada dentro de 2016— y la brecha se usa para entender por qué un modelo rinde lo que rinde.
Error típico: «el de mayor brecha es el peor» o «el de menor brecha es el mejor». La brecha mide distancia entre train y test, no calidad.
De dónde sale: [FUENTE · Repo: 07_DATITO/02_REFERENCIA/material.md]; lectura [INFERENCIA].
Y una advertencia sobre tu propio proyecto: esta brecha compara 2016 contra 2017, así que mezcla sobreajuste con cambio entre años. Comentando un proyecto 2016→2017 en la sesión del 4-sep, el profesor explicó que es normal que el modelo rinda algo peor en 2017 porque los datos cambian entre un año y otro, y que el modelo queda un poco sobreajustado a 2016 [FUENTE · Repo: 05_CLASES/transcripciones/2026-09-04T22_05_05Z_Fundamentos_en_Ciencia_de_Datos.md · 2:08:58–2:09:21]. Detalle en generalizacion.html.
3 · Gradient boosting: un recuadro, no una clase
Lo único que dijo el profesor sobre gradient boosting fue esto, comentando la presentación de un grupo:
HistGradientBoostingRegressor, de regresión
[FUENTE · Repo: 03_SCRIPTS/modelamiento_temporal.py · línea 61]. En el mismo comentario el
profesor recordó que el random forest tiene versión de regresión y de clasificación
[FUENTE · Repo: 05_CLASES/transcripciones/2026-08-14T22_09_23Z_Fundamentos_en_Ciencia_de_Datos.md · 1:59:00–1:59:08];
con boosting pasa lo mismo, como muestra tu código. No hay lámina que zanje el punto: si te
lo preguntan, di que existe para ambas tareas y muestra tu caso.[DATITO] La idea en un párrafo. Random Forest entrena sus árboles en paralelo: cada uno, por su cuenta, intenta predecir el precio completo desde su muestra, y al final se promedian. Gradient boosting los entrena en secuencia: el primero predice algo simple; el segundo se entrena sobre lo que al primero le faltó (el residuo: real − predicho); el tercero, sobre lo que todavía falta después de los dos; y así. La predicción final es la suma de las correcciones, cada una multiplicada por una tasa de aprendizaje chica.
| Random Forest | Gradient boosting | |
|---|---|---|
| Orden | paralelo: ningún árbol mira a otro | secuencial: cada árbol depende de los anteriores |
| Qué aprende cada árbol | el objetivo completo, desde su muestra | el residuo de lo acumulado |
| Árboles típicos | profundos | chicos |
| Cómo combina | promedio o votación | suma, ponderada por la tasa de aprendizaje |
Un ejemplo de tres casas [DATITO · cifras ilustrativas, miles de AUD], con tasa de aprendizaje 0,5 y un árbol 2 tan chico que solo puede separar la casa c de las otras dos:
| Casa | Precio real | Árbol 1 (la media) | Residuo 1 | Árbol 2 predice el residuo | Tras 2 árboles | Residuo 2 |
|---|---|---|---|---|---|---|
| a | 700 | 1.000 | −300 | −200 | 1.000 + 0,5·(−200) = 900 | −200 |
| b | 900 | 1.000 | −100 | −200 | 900 | 0 |
| c | 1.400 | 1.000 | +400 | +400 | 1.000 + 0,5·400 = 1.200 | +200 |
El árbol 3 recibiría −200, 0 y +200: cada árbol nuevo trabaja sobre lo que los anteriores todavía no explican. Con error cuadrático, el residuo es justamente la dirección en que baja el error; de ahí el «gradient» del nombre, y la misma idea de bajar por el gradiente reaparece en redes_neuronales.html [DATITO].
Tu modelo final, leído con el recuadro
Tu modelo final es un HistGradientBoosting sobre log1p(Price): MAE 188.218 AUD y R² 0,757 en 2017 [FUENTE · Repo: 07_DATITO/02_REFERENCIA/material.md]. Su configuración y la del Gradient Boosting clásico [FUENTE · Repo: 03_SCRIPTS/modelamiento_temporal.py · líneas 60–61]:
GradientBoostingRegressor(n_estimators=400, max_depth=4, learning_rate=0.05, subsample=0.8)HistGradientBoostingRegressor(max_iter=500, learning_rate=0.05, max_leaf_nodes=31, l2_regularization=1.0)
Léelo con el recuadro: árboles chicos (profundidad 4, o 31 hojas como máximo), muchos (400 a 500), y cada uno aporta solo el 5 % de su corrección [INFERENCIA]. Brechas: GB 0,1392, la menor de tus cuatro modelos de árboles; HGB 0,1703, con el mejor R² en test (0,7571). Otra vez: la menor brecha no fue el mejor test.
Sin mirar el recuadro, explica por escrito qué hace el árbol número 2 de tu
HistGradientBoosting que no hace ningún árbol de tu Random Forest. Tu explicación tiene que
usar la palabra «residuo», decir en qué escala está ese residuo en tu proyecto (el target es
log1p(Price)) y explicar por qué se usa learning_rate=0.05 en vez de 1.
Escríbelo antes de abrir la respuesta modelo, y llévalo a Datito.
Respuesta correcta y cómo se resuelve
Respuesta: el árbol 2 del boosting se entrena para predecir el residuo que dejó el árbol 1 —lo que al modelo todavía le falta— y su predicción se suma, multiplicada por 0,05, a la anterior; ningún árbol del Random Forest hace eso, porque cada uno predice el objetivo completo por su cuenta y al final se promedian.
Respuesta modelo:
«En mi HistGradientBoosting, el primer árbol hace una predicción gruesa de log1p(Price). El árbol 2 no intenta predecir el precio: se entrena sobre el residuo, la diferencia entre el log1p del precio real de cada casa y lo que predijo el árbol 1. Como el objetivo está en logaritmo, ese residuo funciona como un error relativo: un residuo de +0,10 significa que el modelo se quedó corto en torno a un 10 %, sea la casa de 500 mil o de 2 millones. La predicción nueva es la del árbol 1 más 0,05 veces la del árbol 2, y el árbol 3 se entrena sobre lo que todavía falta. En mi Random Forest, en cambio, los 300 árboles se entrenan cada uno por su cuenta, en paralelo, sobre el objetivo completo, y se promedian: ninguno sabe en qué se equivocó otro. Uso learning_rate = 0,05 y no 1 porque con 1 cada árbol corregiría todo su residuo de golpe, ruido de 2016 incluido; con pasos chicos cada árbol corrige solo un poco y los siguientes matizan sus errores. El costo es necesitar muchos árboles: por eso son 500.»
Cómo se construye:
- Qué recibe el árbol 2: residuos (real − acumulado), no precios.
- De quién depende: del árbol 1 (secuencial). En el bosque nadie depende de nadie.
- Escala: log1p(real) − predicción en log ≈ error relativo [INFERENCIA].
- Cómo se combina: suma, con cada corrección multiplicada por 0,05.
- Por qué 0,05: pasos chicos persiguen menos el ruido; se paga con más árboles.
Error típico: decir que el boosting «promedia árboles» o que «cada árbol usa datos distintos» (eso es Random Forest); o hablar del residuo en AUD cuando el modelo trabaja en log.
De dónde sale: recuadro de arriba [DATITO]; configuración de [FUENTE · Repo: 03_SCRIPTS/modelamiento_temporal.py · línea 61]; escala logarítmica [INFERENCIA]. No es materia de clase: gradient boosting no tiene lámina.
Criterios con que se corrige tu versión
- Dice que el árbol 2 se entrena sobre lo que el modelo acumulado todavía no explica, no sobre el precio.
- Dice que depende del árbol 1 (secuencial), mientras que en el bosque ningún árbol depende de otro.
- Ubica el residuo en escala logarítmica: log1p del precio real menos la predicción en log, más parecido a un error relativo que a uno en AUD [INFERENCIA].
- Explica la tasa: cada árbol corrige una fracción, y muchos pasos chicos persiguen menos el ruido que pocos pasos grandes; el precio es necesitar más árboles.
- No dice que el boosting «promedia» árboles.
4 · Ensambles: cuándo más modelos ayudan
Random Forest y boosting son dos casos de una idea más general: combinar varios modelos en uno. Tres maneras de hacerlo [DATITO]:
| Tipo | De dónde sale la diversidad | Cómo combina | Dónde lo tienes |
|---|---|---|---|
| Bosque (bagging) | mismo algoritmo, filas y atributos al azar | promedio o votación | Random Forest en Melbourne; ExtraTrees en Galaxy Zoo |
| Boosting | cada modelo ataca lo que los anteriores fallan | suma ponderada | HistGradientBoosting en Melbourne; CatBoost en Galaxy Zoo |
| Combinación de familias | algoritmos distintos | promedio de probabilidades o voto | P = α·PA + (1 − α)·PB en tu 08_ensemble.py |
La fórmula de la última fila está en [FUENTE · Repo: 08_PROYECTO_FCD/Desafio/src/08_ensemble.py]. En los tres casos la pregunta es la del profesor con Cristóbal y Daniel: ¿se equivocan en casos distintos?
Respuesta correcta y cómo se resuelve
Respuesta: depende de si se equivocan en los mismos casos: con errores independientes (y cada modelo mejor que el azar) el voto sube hacia 100 %; con clones se queda en 65 %; y si cada modelo es peor que el azar, votar empeora.
Cómo se resuelve (con el modelo del simulador):
- ρ = 0: el voto acierta si aciertan al menos 6 de 11. Con p = 0,65, P(al menos 6 de 11) ≈ 0,851; con 51 modelos, P(al menos 26 de 51) ≈ 0,986.
- ρ = 1: en cada caso todos aciertan o todos fallan juntos, así que el voto acierta exactamente p = 0,65, con 1 o con 51.
- ρ = 0,5 y 51 modelos: 0,5 · 0,65 + 0,5 · 0,986 ≈ 0,818. Techo: con infinitos modelos, 0,5 · 0,65 + 0,5 · 1 = 0,825.
- p = 0,45 y ρ = 0: con 11 modelos, ≈ 0,367; con 51, ≈ 0,236. La mayoría amplifica el error.
Error típico: «más modelos siempre mejora» (confundir número con diversidad: la P1), o «65 % es 65 %» (ignorar que errores en casos distintos se compensan).
De dónde sale: modelo del simulador y sus cifras [DATITO]; condición de correlación del profesor [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:29:42–1:30:04].
| N | cuántos modelos votan; impar, para que no haya empates decisión |
| p | exactitud de cada modelo por separado |
| ρ | correlación entre los aciertos de dos modelos: en una fracción ρ de los casos, todos «copian» el mismo resultado |
| P(más de N/2 aciertan) | probabilidad binomial de que la mayoría acierte si cada uno acierta por su cuenta: Σk>N/2 C(N,k)·pk·(1 − p)N−k |
Es el modelo del simulador [DATITO], simplificado a propósito para que ρ se vea. No es la fórmula de ninguna librería: es una forma honesta de mostrar el efecto.
· ρ = 1 (clones): la curva roja es plana en p. Da lo mismo votar con 1 o con 51.
· ρ = 0 y p > 0,5: la curva verde sube hacia 100 %. Cada modelo agrega información nueva.
· ρ entre 0 y 1: sube, pero se aplana antes. Con infinitos modelos llega a ρ·p + (1 − ρ), nunca a 100 %: la parte de los errores que comparten no se cancela nunca.
· p < 0,5: la mayoría de modelos malos es peor que uno solo. Votar amplifica lo que haya, bueno o malo.
Pregunta estilo certamen (V/F, justifica si es falsa): «Utilizar un modelo compuesto por varios modelos exactamente iguales y que predicen exactamente lo mismo suele predecir mejor que cada modelo por separado.»
Respuesta correcta y cómo se resuelve
Respuesta: falso: un ensamble de modelos idénticos que predicen lo mismo equivale a un solo modelo, porque comete exactamente los mismos errores.
Cómo se resuelve:
- Modelos idénticos producen predicciones idénticas.
- Predicciones idénticas producen errores idénticos, en los mismos casos (ρ = 1).
- Promediar o votar valores iguales devuelve ese mismo valor.
- Luego el ensamble no mejora nada: la ventaja de un ensamble viene de que sus modelos se equivoquen en casos distintos (lámina 36: «asegurarnos de que no aprendan todos exactamente lo mismo»).
Error típico: responder «verdadero» porque «más modelos es mejor», o justificar el falso con «no aporta» sin nombrar el mecanismo (errores en los mismos casos).
De dónde sale: enunciado y derivación del expediente [FUENTE · Repo: 01_DOCUMENTACION/01_CERTAMEN2/02_MAPA_PROCESO_ESTUDIO.md]; lámina 36 [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 36]; el ejemplo del profesor [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:30:40–1:30:49].
Para regresión o para promedios de probabilidades no hay votos, pero la idea es la misma con varianzas:
| σ² | varianza del error de un modelo por separado |
| n | modelos promediados decisión |
| ρ | correlación entre los errores de dos modelos |
[DATITO] La versión general de la fórmula de la ficha P1, que es el caso ρ = 0.
(1) ¿Qué pasa si n crece sin límite? (2) ¿Y si ρ = 1? (3) ¿Y si ρ = 0? (4) ¿Qué perilla de esta fórmula mueve Random Forest?
Respuesta correcta y cómo se resuelve
Respuesta: (1) queda ρ·σ², un piso que ningún número de modelos rompe; (2) Var = σ², como un solo modelo; (3) Var = σ²/n; (4) baja ρ.
Cómo se resuelve:
- (1) Con n → ∞, el término (1 − ρ)·σ²/n tiende a 0 y sobrevive ρ·σ².
- (2) Con ρ = 1: 1·σ² + 0 = σ², con n = 1 o con n = 300. Clones.
- (3) Con ρ = 0: 0 + σ²/n. Con 300 modelos, la varianza baja 300 veces.
- (4) Random Forest sortea filas y atributos para bajar ρ, aunque cada árbol quede algo peor (σ² algo mayor): el balance le conviene.
Error típico: usar σ²/n sin verificar independencia; la fórmula de la ficha P1 solo vale con ρ = 0.
De dónde sale: [DATITO]; es la generalización de la fórmula de certamen_2.html#p1.
[DATITO · cifras ilustrativas] Tres modelos, A, B y C, clasifican los mismos 10 casos y cada uno acierta 8 (80 %). La ✗ marca dónde falla cada uno. Combinas por mayoría (2 de 3).
| Escenario 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| A | ✗ | ✗ | ||||||||
| B | ✗ | ✗ | ||||||||
| C | ✗ | ✗ |
| Escenario 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| A | ✗ | ✗ | ||||||||
| B | ✗ | ✗ | ||||||||
| C | ✗ | ✗ |
| Escenario 3 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| A | ✗ | ✗ | ||||||||
| B | ✗ | ✗ | ||||||||
| C | ✗ | ✗ |
(a) Calcula la exactitud del voto en cada escenario. (b) ¿Qué cantidad de la tabla decide el resultado, sin necesidad de mirar la exactitud de cada modelo?
Respuesta correcta y cómo se resuelve
Respuesta: el voto acierta 80 % en el escenario 1, 100 % en el 2 y 70 % en el 3; lo decide el número de casos donde fallan al menos dos modelos.
Cómo se resuelve: columna por columna, cuenta las ✗; si hay dos o más, el voto falla en ese caso.
- Escenario 1: los tres fallan en 3 y 8 → el voto falla en 2 casos → 8/10 = 80 %, lo mismo que cada uno (clones).
- Escenario 2: ningún caso tiene dos ✗ → el voto no falla nunca → 100 %.
- Escenario 3: los casos 1, 2 y 3 tienen dos ✗ cada uno → el voto falla en 3 casos → 7/10 = 70 %, peor que cualquiera de los modelos.
- Los tres escenarios tienen modelos de 80 % y dan 80, 100 y 70 %: lo que cambia es dónde caen los errores. La diversidad ayuda si los errores no se juntan de a dos; si se juntan justo de a dos, el voto amplifica.
Error típico: suponer que tres modelos de 80 % votando dan siempre más de 80 %, o calcular 89,6 % con la fórmula de independencia (0,8³ + 3·0,8²·0,2): ninguno de los tres escenarios tiene errores independientes.
De dónde sale: cifras ilustrativas [DATITO]; regla de mayoría como en la lámina 37 aplicada a clasificación [INFERENCIA].
Combinas dos modelos que aciertan 80 % cada uno. Construye con 10 casos, como las tablas de arriba, un escenario donde la combinación supere el 80 % y otro donde no gane nada. Antes resuelve un problema que con tres modelos no tenías: ¿qué hace la combinación cuando los dos discrepan? Declara la regla que usas. Escríbelo antes de abrir la respuesta modelo, y llévalo a Datito.
Respuesta correcta y cómo se resuelve
Respuesta: dos modelos de 80 % combinados superan el 80 % solo si fallan en casos distintos y la regla de combinación, en cada desacuerdo, le cree al que acierta (por ejemplo, promediando probabilidades cuando el que acierta está más seguro); si fallan en los mismos casos, o si la regla no sabe a quién creerle, no ganan nada, y hasta pueden perder.
Respuesta modelo [DATITO · cifras ilustrativas]. Regla: promediar las probabilidades de la clase correcta y decidir con umbral 0,5.
- Escenario que gana. A falla en los casos 1 y 2; B falla en 3 y 4. En 1 y 2, A se equivoca con poca seguridad (da 0,45 a la clase correcta) y B acierta seguro (0,90): promedio 0,675 → acierta. En 3 y 4 pasa lo mismo al revés. En los otros 6 casos aciertan los dos. Resultado: 10 de 10 = 100 %.
- Escenario que no gana. A y B fallan los dos en los casos 1 y 2: no hay a quién creerle, el promedio también falla. Resultado: 8 de 10 = 80 %.
- Escenario que pierde. Fallan en casos distintos (A en 1 y 2, B en 3 y 4), pero el que se equivoca está muy seguro (da 0,10 a la clase correcta) y el que acierta, dudoso (0,55): promedio 0,325 → falla. Resultado: 6 de 10 = 60 %.
- Con voto simple entre dos, cada desacuerdo es un empate: si lo resuelves al azar, esperas 80 %, sin ganancia.
Error típico: afirmar «dos de 80 % dan 96 %» (1 − 0,2²). Esa cifra supone errores independientes y un árbitro perfecto que en cada desacuerdo elige al que acierta; ninguna de las dos cosas viene gratis.
De dónde sale: la regla de promediar probabilidades es la de tu [FUENTE · Repo: 08_PROYECTO_FCD/Desafio/src/08_ensemble.py]; los escenarios son [DATITO].
Criterios con que se corrige tu versión
- Nota que con dos votos hay empates y declara una regla (por ejemplo, promediar
probabilidades, como hace
08_ensemble.py). - El escenario ganador tiene los fallos en filas distintas y la regla elige al que acierta en esas filas (por ejemplo, porque está más seguro).
- El escenario sin ganancia tiene los fallos en las mismas filas, o una regla que no sabe a quién creerle.
- No afirma una cifra como «96 %» sin decir de dónde sale ni qué supone.
Galaxy Zoo: lo que tu código hace, y lo que no hay
Tu 08_ensemble.py hace dos cosas antes de combinar. Primero mide la
diversidad de errores de cada par de modelos: la fracción de filas donde
fallan los dos sobre las filas donde falla alguno (jaccard_error), con el
comentario de que si dos modelos fuertes fallan en las mismas filas, promediarlos no puede
aportar. Después busca el α de P = α·PA + (1 − α)·PB y solo adopta el
ensamble si mejora al mejor modelo individual en más de 0,005; si no, imprime «NO ADOPTAR (no
supera el ruido)» [FUENTE · Repo: 08_PROYECTO_FCD/Desafio/src/08_ensemble.py].
analysis/ no existen
ensemble_diversity.csv ni ensemble_alpha.csv, y las secciones 9 y
11–13 del REPORT dicen «Pendiente»
[FUENTE · Repo: 08_PROYECTO_FCD/Desafio/REPORT.md]. No inventes esa cifra, ni en un
certamen ni en una defensa: declara el vacío.Con validación cruzada de 5 folds y F1-macro, el REPORT registra [FUENTE · Repo: 08_PROYECTO_FCD/Desafio/REPORT.md · §5]:
| Modelo | F1-macro medio | Desviación entre folds |
|---|---|---|
| CatBoost balanceado | 0,6129 | 0,0223 |
| LinearSVC balanceado | 0,6105 | 0,0380 |
| ExtraTrees balanceado | 0,5657 | 0,0349 |
(a) ¿Cuál es un bosque, cuál es boosting y cuál no es un ensamble? (b) Si fueras a combinar dos, ¿cuáles probarías y qué medirías antes? (c) Tu script adopta el ensamble si gana más de 0,005. Con estas desviaciones, ¿es un umbral exigente?
Respuesta correcta y cómo se resuelve
Respuesta: (a) ExtraTrees es un bosque, CatBoost es boosting y LinearSVC no es un ensamble; (b) probaría CatBoost con LinearSVC, midiendo antes en cuántas galaxias fallan los dos respecto de las que falla alguno; (c) no: 0,005 queda muy por debajo del ruido entre folds.
Cómo se resuelve:
- (a) ExtraTrees es un bosque de árboles con cortes al azar; CatBoost es gradient boosting sobre árboles; LinearSVC es un modelo lineal [DATITO]. Fíjate en que un ensamble (ExtraTrees) quedó bajo un modelo lineal solo: ser ensamble no garantiza nada.
- (b) CatBoost y LinearSVC rinden casi igual y son de familias muy distintas, así que es
plausible que fallen en galaxias distintas [INFERENCIA]. Plausible no basta: se
mide con las predicciones fuera de fold, que es lo que calcula tu script antes de combinar
(
jaccard_error). - (c) El REPORT ya advierte que una diferencia de 0,0024 es «entre 9 y 16 veces menor que la desviación entre folds» y que no respalda la conclusión [FUENTE · Repo: 08_PROYECTO_FCD/Desafio/REPORT.md · §5]. Una ganancia de 0,005 sigue muy por debajo de desviaciones de 0,022 a 0,038 [INFERENCIA].
Error típico: suponer que combinar los dos mejores siempre mejora, o reportar una ganancia de 0,005 como mejora real sin compararla con la desviación entre folds.
De dónde sale: cifras de [FUENTE · Repo: 08_PROYECTO_FCD/Desafio/REPORT.md · §5]; criterio de adopción de [FUENTE · Repo: 08_PROYECTO_FCD/Desafio/src/08_ensemble.py].
5 · Transferir, producir y el papel
[DATITO · cifras ilustrativas] Un consultorio quiere un árbol que sugiera derivar o no a cardiología. Tiene 20 pacientes: 12 «no derivar» y 8 «derivar». Dos cortes candidatos para la raíz:
| Corte | Lado ≤ | Lado > |
|---|---|---|
| Presión sistólica ≤ 140 | 10 no · 2 sí | 2 no · 6 sí |
| Edad ≤ 60 | 7 no · 3 sí | 5 no · 5 sí |
(a) ¿Qué corte elige C4.5 con Gini? Calcula las dos ganancias. (b) Llega un paciente con presión 150. ¿Qué entrega el árbol de un solo corte? ¿Quién decide si eso significa «derivar»?
Respuesta correcta y cómo se resuelve
Respuesta: (a) C4.5 elige la presión (ganancia ≈ 0,163 contra 0,02 de la edad); (b) el árbol entrega 75 % de probabilidad de «derivar», y si eso significa derivar lo decide quien fija el umbral según el costo de cada error, no el árbol.
Cómo se resuelve:
- Padre (12 no, 8 sí): p = 8/20 = 0,4 → Gini = 2 · 0,6 · 0,4 = 0,48.
- Presión: lado ≤ (10, 2) → 2·(10/12)(2/12) ≈ 0,2778; lado > (2, 6) → 2·(2/8)(6/8) = 0,375. Ponderada 12/20 · 0,2778 + 8/20 · 0,375 ≈ 0,1667 + 0,15 = 0,3167. Ganancia ≈ 0,48 − 0,3167 = 0,163.
- Edad: (7, 3) → 2 · 0,7 · 0,3 = 0,42; (5, 5) → 0,5. Ponderada 0,5 · 0,42 + 0,5 · 0,5 = 0,46. Ganancia 0,02. Gana la presión.
- Paciente con 150: cae en el lado > 140, donde 6 de 8 fueron derivados → P(derivar) = 6/8 = 75 %. En salud, no derivar a un enfermo cuesta más que derivar a un sano, así que el umbral suele ponerse bajo [DATITO]. Es el punto de operación de roc_auc.html.
Error típico: elegir la edad porque «divide más parejo» (10 y 10), o decir «el árbol dice derivar» sin dar la probabilidad ni quién fija el umbral.
De dónde sale: cifras ilustrativas [DATITO]; procedimiento de las láminas 29, 31 y 32 [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 32].
[DATITO · cifras ilustrativas] Una faena minera tiene tres alarmas automáticas que predicen la falla de una correa transportadora, y cada una acierta 85 de cada 100 casos. A y B son el mismo modelo de vibración, entrenado con los mismos datos y distinta semilla; C usa la temperatura del motor. En 100 casos históricos, A falló en 15, B en 15, y 14 de esos fallos son los mismos casos; C falló en 15 casos donde A y B acertaron.
(a) ¿Cuánto acierta el voto de las tres? (b) ¿Cómo lo mejorarías sin mejorar ninguna alarma por separado?
Respuesta correcta y cómo se resuelve
Respuesta: (a) el voto acierta 86 de 100, casi lo mismo que cada alarma sola; (b) reemplazando B por una alarma que se equivoque en otros casos.
Cómo se resuelve:
- El voto de tres falla donde fallan al menos dos.
- A y B fallan juntas en 14 casos: ahí C acierta, pero pierde 2 a 1 → 14 fallos del voto.
- A falla sola en 1 caso, B sola en 1 caso, C sola en 15: en ninguno de esos fallan dos → el voto acierta.
- Voto: 100 − 14 = 86 de 100. C aporta diversidad real, pero A y B son casi clones y la votan en contra.
- (b) Con tres alarmas de 85 % que fallaran en casos disjuntos (45 casos distintos), ningún caso tendría dos fallos y el voto acertaría los 100. La diversidad se diseña (otro sensor, otras variables), igual que en Random Forest.
Error típico: calcular ≈ 94 % con la fórmula de independencia (0,85³ + 3 · 0,85² · 0,15 ≈ 0,939): A y B no son independientes. Es la P1 en terreno: número ≠ diversidad.
De dónde sale: cifras ilustrativas [DATITO]; condición de correlación del profesor [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:29:42–1:30:04].
A una persona que no ha visto nada de esto —un compañero de otra carrera, alguien de tu casa— explícale en menos de dos minutos, usando solo los triángulos y círculos del profesor:
1. cómo un árbol elige su primer corte;
2. por qué cien árboles distintos se equivocan menos que uno;
3. por qué cien árboles copiados, no.
Grábalo o escríbelo antes de abrir la respuesta modelo, y llévalo a Datito.
Respuesta correcta y cómo se resuelve
Respuesta: un árbol elige el corte que más reduce la mezcla, ponderando cada lado por su tamaño; cien árboles distintos se equivocan menos porque cada uno se equivoca a su manera y al votar los errores se tapan; cien copias se equivocan en lo mismo, y votar es preguntarle cien veces al mismo.
Respuesta modelo:
«Imagina 17 figuras en una hoja: 9 triángulos y 8 círculos, desparramados. Quiero una regla para adivinar la figura de un punto nuevo sabiendo solo dónde está. Un árbol prueba rayas: una vertical aquí, otra allá, horizontales, y para cada raya mira qué tan revueltos quedan los dos lados. Lo revuelto se mide con un número, el Gini: 0 si un lado tiene una sola figura, 0,5 si está mitad y mitad. Elige la raya que más baja ese número, dándole más peso al lado que tiene más figuras, para no premiar una raya que solo aparta un punto. Después repite dentro de cada lado. Cuando cae un punto nuevo, el árbol no dice "es triángulo": dice "aquí 8 de 9 eran triángulos, 89 %". Un árbol solo se equivoca harto, porque sus rayas se acomodan a los puntos exactos que vio. Si hago cien árboles y a cada uno le muestro una muestra distinta de figuras y solo algunas de las coordenadas, cada uno se equivoca a su manera, y cuando votan, los errores de uno los tapan los otros. Pero si los cien son copias, se equivocan justo en lo mismo: votar es preguntarle cien veces al mismo, como preguntarle a Daniel algo en lo que opina exactamente igual que Cristóbal.»
Cómo se construye: (1) la situación con las figuras del profesor; (2) el número de mezcla y la ponderación por tamaño; (3) la hoja como proporción; (4) por qué un árbol solo falla (se acomoda a lo que vio); (5) la diversidad con su mecanismo; (6) el caso de las copias.
Error típico: explicar con jerga sin traducirla («bootstrap», «hiperparámetro»), olvidar la ponderación por tamaño, o decir que cien árboles son mejores «porque son más».
De dónde sale: ejemplo y conteos del profesor [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:14:52–1:15:40]; láminas 27–37 [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_07_Clasificacion.md · lámina 37]; redacción [DATITO].
Criterios con que se corrige tu versión
- El corte se elige comparando cortes con un número de mezcla y la ganancia ponderada por tamaño, no «a ojo».
- Menciona que la hoja responde con una proporción.
- Explica la diversidad con su mecanismo (filas y atributos al azar), no con «más es mejor».
- El punto 3 usa la idea de errores en los mismos casos, no solo «no aporta».
- Traduce la jerga (bootstrap, hiperparámetro) o no la usa.
Procedimiento para el papel
GINI DE UN NODO 1. CONTAR Nᵢ por clase y el total N 2. PROPORCIONES pᵢ = Nᵢ/N (verifica que sumen 1) 3. GINI Σ pᵢ(1 − pᵢ) con 2 clases: 2·p·(1 − p) 4. CHEQUEAR puro → 0 · mitad y mitad (2 clases) → 0,5 GANANCIA DE UN CORTE (C4.5) 5. PADRE Gini del nodo antes de cortar 6. HIJOS Gini de cada hijo 7. PONDERAR cada hijo × N(hijo)/N(padre) ← el paso que más se olvida 8. RESTAR ganancia = padre − suma ponderada 9. ELEGIR gana el corte con MAYOR ganancia RANDOM FOREST 10. PROBABILIDAD votos de la clase / n árboles 11. IMPORTANCIA veces que se usó la variable / total de divisiones 12. DIVERSIDAD filas CON reemplazo + m atributos al azar VOTO DE UN ENSAMBLE 13. POR CASO ¿fallan más de la mitad? → falla el voto 14. EXACTITUD casos con mayoría correcta / total 15. ANTES DE DECIR «MEJORA»: ¿fallan en los mismos casos?
- Restar el promedio simple de los hijos en vez del ponderado por tamaño: premia cortes que aíslan un punto (el corte C del plano).
- Leer Gini al revés: alto es mezclado; 0 es puro.
- Decir que la medida de impureza se aprende, o que una es siempre mejor: es un hiperparámetro y se elige con validación cruzada.
- Ofrecer la ganancia de pureza como métrica de evaluación (Certamen 2, P4).
- Describir Random Forest sorteando solo filas, solo atributos, o «atributos con reemplazo».
- Confundir número de modelos con diversidad (Certamen 2, P1): los clones no suman.
- Decir «el árbol predice perro» sin decir que la hoja entrega una proporción y la clase sale de un umbral.
- Elegir modelo por la brecha, o llamar sobreajuste a toda la caída de 2016 a 2017.
- Presentar gradient boosting como materia de clase, o afirmar que es «solo para clasificación» contra tu propio modelo de regresión.
- Inventar una cifra del ensamble de Galaxy Zoo: no existe en el repositorio.
overfitting_underfitting.html— de dónde viene esto: la brecha y el modelo que memorizavalidacion_cruzada.html— cómo se eligen la medida de impureza, la profundidad y el número de árbolesclasificacion.htmlyroc_auc.html— de la proporción de la hoja a la clase, con umbralcertamen_2.html#p1y#p4— las dos preguntas del Certamen 2 que toca esta páginaredes_neuronales.html— la otra rama que sale de gradient boosting: bajar el error por el gradiente
Cierre de la Clase 15 · Árboles de decisión
Qué aprendiste
- El árbol divide los datos buscando grupos más puros.
- El Gini de un nodo es su error esperado; se pondera por el tamaño de cada hijo.
- El árbol se detiene por pureza, o antes, para no sobreajustar.
- La medida de impureza es un hiperparámetro: se elige con validación cruzada.
Qué no debes confundir
- Ganancia de pureza (sirve para construir el árbol) ≠ métrica de evaluación (C2 P4).
- Árbol sin límite ≠ buen modelo: sobreajusta.
Procedimiento para el papel
- Calcula la impureza de cada hijo.
- Pondera por el tamaño de cada hijo.
- Compara con el padre y elige el corte de mayor ganancia.
Viene de: Clase 14 · ROC-AUC y elección del umbral · Sigue: Clase 16 · Random Forest y ensambles
Vuelve a tu activación: Tienes 9 triángulos y 8 círculos. ¿Qué corte los separa mejor, y cómo lo mides? ¿Cambiarías tu respuesta?
Respuesta correcta y cómo se resuelve
1/8 · 7/8 + 7/8 · 1/8 = 14/64 = 0,21875. [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:14:34]
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.
Cierre de la Clase 16 · Random Forest y ensambles
Qué aprendiste
- Random Forest: muchos árboles con filas por bootstrap y atributos al azar, que votan.
- La importancia de una variable se cuenta por cuántas veces los árboles la usan para separar.
- Boosting corrige en secuencia los errores de los árboles anteriores (no se enseñó como tema en clase).
- El modelo final de Melbourne fue un HistGradientBoosting.
Qué no debes confundir
- Número de modelos ≠ diversidad (C2 P1).
- En paralelo (Random Forest) ≠ en secuencia (boosting).
Procedimiento para el papel
- ¿Los modelos se equivocan en casos distintos? Si no, sumar modelos no ayuda.
- Diversidad: filas distintas (bootstrap) y atributos distintos.
Viene de: Clase 15 · Árboles de decisión · Sigue: Clase 17 · Redes neuronales
Vuelve a tu activación: Tienes 10 modelos que se equivocan exactamente en los mismos casos. ¿Mejora la decisión si los haces votar? ¿Cambiarías tu respuesta?
Respuesta correcta y cómo se resuelve
No: su opinión está perfectamente correlacionada con la de Cristóbal y no aporta información nueva. [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 1:30:40]
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.