Machine Learning — Parcial 2

Clases 12 a 25 · martes 10 de noviembre. Cada tema: la idea en una frase, un video corto, la explicación fácil, una maqueta para tocar, lo que hay que saber, aclaraciones, la trampa y preguntas para responder. Si el primer parcial te fue mal, empezá por la sección 0.

Qué entraÁrboles, bagging y random forests, boosting, SVM, redes, CNN, clustering, PCA, embeddings, selección de atributos y comparación de modelos.
Qué no entraAprendizaje por refuerzo (clase 26) y XAI (clase 27).
Cómo son los ejerciciosSegún la práctica oficial: código + salida para criticar, figuras para leer, una cuenta a mano y verdadero/falso justificado.

Plantilla para los ejercicios de "analizá este código"

Los ejercicios 1 y 2 de la práctica oficial piden exactamente estas tres partes. Respondé siempre en este orden.

1 · DiagnósticoNombrá el error: "evalúa sobre entrenamiento", "el modelo base no es débil", "selección fuera de los folds".
2 · EvidenciaCitá la línea de código y el número de la salida que lo prueba (2371 hojas para 2400 datos, 1 miembro ajustado…).
3 · ImpactoQué le pasa al algoritmo por dentro y qué consecuencia tiene (memoriza, la secuencia se corta, estimación optimista).
4 · CorrecciónEl cambio concreto: qué hiperparámetro, qué conjunto, qué va dentro del pipeline, y cómo validarlo.

El mapa en una tabla

ModeloIdeaAtaca¿Escalar?Perillas
ÁrbolPartición en cajas + una constante por caja—Noprofundidad, hojas mínimas, α de poda
Bagging / RFPromediar árboles completos en paraleloVarianzaNomtry, B (cuanto más, mejor)
BoostingSumar árboles chicos en secuenciaSesgoNoB, η, tamaño del árbol (juntos)
SVMFrontera de máximo margen + kernel—SíC, γ
Red neuronalCapas afines + no linealidad—Síunidades/capas, η, L2/dropout, épocas
k-meansCentroides, minimiza inercia—SíK, inicialización
DBSCANRegiones densas conectadas + ruido—Síε, mpts
PCADirecciones de máxima varianza—Sí (unidades distintas)M componentes

Todos los videos

12 videos · unos 5 minutos y medio en total

Los doce videos cortos juntos, en orden. Son mudos: el texto va en pantalla. Sirven para una primera pasada rápida o para repasar todo de corrido; el título de cada uno lleva a su tema.

0 · Bases que necesitás del primer parcial

clases 1–11

El parcial 2 no vuelve a preguntar estos temas, pero los usa en casi todas las respuestas. Son nueve ideas. Si el primer parcial te fue mal, empezá por acá: unos 40 minutos.

1 · Entrenamiento, validación y prueba

Explicado fácilPreparar un examen. Los ejercicios resueltos con que estudiás son el entrenamiento. Los simulacros que usás para decidir cómo seguir estudiando son la validación. El examen de verdad es la prueba: se rinde una sola vez y dice cuánto sabés. Si practicás con las preguntas del examen real, la nota deja de decir algo.
EntrenamientoEl modelo aprende acá. Su error en estos datos siempre es optimista.
ValidaciónVos elegís acá: qué modelo, qué hiperparámetros, cuándo parar.
PruebaSe usa una sola vez, al final, para informar el error en datos nuevos.
ParámetroLo que el modelo aprende solo de los datos: coeficientes, cortes de un árbol, pesos de una red.
HiperparámetroLo que elegís vos antes de entrenar: profundidad, C, γ, K, tasa de aprendizaje. Se elige con validación.

2 y 3 · Sobreajuste, sesgo y varianza

Explicado fácilSobreajustar es estudiar de memoria las respuestas del práctico: sacás 10 en ese práctico y te va mal cuando cambian los números. Subajustar es estudiar tan por arriba que te va mal en todo. Sesgo es equivocarse siempre para el mismo lado porque el modelo es demasiado simple. Varianza es que el modelo cambia mucho según qué datos le tocaron.

Maqueta: subí la complejidad y mirá los dos errores

El modelo es un polinomio. Con grado bajo no llega a seguir la curva; con grado alto pasa por todos los puntos de entrenamiento y hace locuras entre ellos.

SubajusteSobreajuste
Error de entrenamientoAltoMuy bajo
Error de validaciónAlto, parecido al de entrenamientoMucho más alto que el de entrenamiento
ProblemaSesgo altoVarianza alta
ArregloModelo más flexible, menos regularizaciónModelo más simple, más regularización, más datos, o promediar (bagging)
En el parcial 2Un stump solo; γ muy chico; k-medias en anillosÁrbol sin límite; γ = 100; boosting con demasiadas etapas
La frase que más vas a usar: «el error de entrenamiento no dice nada sobre el error en datos nuevos». El ejercicio 1 de la práctica es exactamente eso.

4 · Validación cruzada

Explicado fácilEn vez de un solo simulacro, hacés varios rotando qué parte del material guardás para tomarte la prueba. Así la nota no depende de la suerte de un único reparto, y usás todos los datos tanto para entrenar como para validar.

Maqueta: k-fold

Para qué sirvePara elegir hiperparámetros y comparar modelos sin tocar la prueba.
EstratificadaCada fold mantiene la proporción de clases. Se usa en clasificación, sobre todo con clases desbalanceadas.

5 · Fuga de datos y pipeline

Explicado fácilFuga es que el modelo, o cualquier paso previo, espíe datos que no debería conocer. Es copiarse: la nota del simulacro sale alta y no significa nada.
Mal: hay fuga
X_esc = StandardScaler().fit_transform(X)
cross_val_score(modelo, X_esc, y, cv=5)

La media y el desvío se calcularon con todos los datos, incluidos los que después se usan para validar.

Bien: todo adentro
pipe = Pipeline([("esc", StandardScaler()),
                 ("modelo", modelo)])
cross_val_score(pipe, X, y, cv=5)

El pipeline se reajusta entero en cada fold, solo con su parte de entrenamiento.

Regla: escalar, imputar, codificar, seleccionar atributos y PCA van dentro del pipeline. Primero se parte, después se calcula.

6 · Por qué accuracy engaña

Explicado fácilSi de cada 100 clientes solo 12 se atrasan, un «modelo» que dice siempre «nadie se atrasa» acierta 88 veces y no sirve para nada. Precisión: de los que marqué como atrasados, cuántos lo eran. Recall: de los atrasados que había, cuántos encontré.

Maqueta: mové el umbral

Cada punto es un cliente, ubicado según la probabilidad que le dio el modelo. Los que quedan a la derecha del umbral se predicen como «sí». Los bordeados en negro son errores. Llevá el umbral a 1 y mirá el accuracy.

Precisión = VP / (VP + FP)  ·  Recall = VP / (VP + FN)  ·  F1 = 2 · P · R / (P + R)

7 · Descenso por gradiente

Explicado fácilBajar una montaña con niebla: no ves el valle, pero sentís para qué lado baja el piso y das un paso para ahí. La tasa de aprendizaje η es el largo del paso. Así se entrenan las redes, y gradient boosting usa la misma idea.

Maqueta: el largo del paso

Probá η = 0,1, después 0,95 y después 1,05.

8 · Regularización

Explicado fácilEs ponerle un freno al modelo para que no se complique de más: se le cobra una multa por cada cosa complicada que hace. Con más multa el modelo es más simple: sube el sesgo y baja la varianza.
ModeloPerillaMás regularización es…
Regresión Ridge y Lassoλ (alpha)λ más grande
Árbolα de poda, max_depth, min_samples_leafα más grande, menos profundidad, hojas más grandes
Boostingη y cantidad de etapasη más chica, parar antes
SVMCC más chico (va al revés)
Red neuronalL2, dropout, parada tempranamás L2, más dropout, parar antes

9 · Escalado

Explicado fácilSi medís la edad en años (20 a 80) y el ingreso en pesos (10.000 a 200.000), para una distancia dos personas «se parecen» solo por el ingreso: la edad no pesa nada. Estandarizar pone todo en la misma regla.
Necesitan escaladoTodo lo que mide distancias o varianzas: kNN, SVM, redes, k-medias, DBSCAN, jerárquico, PCA.
No lo necesitanÁrboles, bosques y boosting de árboles: solo miran el orden de los valores.

Comprobá que quedó

1 · Árboles de decisión

clase 12

Un árbol es una partición del espacio en cajas más una constante por caja: la clase mayoritaria (clasificación) o la media (regresión) de la hoja a la que llega la observación.

Maqueta: elegí el corte

Mové el umbral. El árbol prueba todos los umbrales de todos los atributos y se queda con el de mayor reducción de impureza Δ. Abajo, Δ para cada umbral posible.

Calculadora de impureza de un nodo

Gini = 1 − Σ pk²
Entropía = −Σ pk log₂ pk
Δ = Imp(padre) − (nizq/n)·Imp(izq) − (nder/n)·Imp(der)
Ganancia de informaciónNo es otra fórmula: es Δ cuando la impureza es la entropía.
Los pesos nhijo/nSalen de la derivación: hacen que maximizar Δ en el nodo equivalga a minimizar la impureza del árbol entero.

Lo que hay que saber

Se hace crecer, no se buscaAlgoritmo codicioso de arriba hacia abajo: mejor corte local, sin garantía de óptimo global.
No necesita preprocesarEl corte Xj ≤ s solo lee el orden. Estandarizar, cambiar unidades o tomar logaritmo deja el mismo árbol (umbrales reescritos).
Poda por costo-complejidadCα(T) = C(T) + α|T| α es el precio de una hoja: cuánto error debe ahorrar para conservarse. α=0 → árbol completo.
Crecer y después podarLa parada temprana juzga cada corte solo; la poda evalúa el subárbol entero y conserva un corte mediocre si sus descendientes lo justifican (caso XOR).
Sesgo bajo, varianza altaUn árbol completo llega a error 0 en entrenamiento y cambia mucho con la muestra. La raíz elegida no es un "hallazgo".
CostoO(p·n·log n): el log n viene de ordenar cada atributo una vez en la raíz, no de la profundidad.
Trampa clásica: R² = 0,9997 medido sobre los mismos datos con que se ajustó, con casi una hoja por observación. Eso es memoria, no precisión. El α de poda se elige con validación cruzada podando dentro de cada fold.

Preguntas con respuesta

Un nodo tiene 9 de una clase y 5 de la otra. ¿Cuánto vale Gini? la erraste en Q3

1 − (9/14)² − (5/14)² = 1 − 81/196 − 25/196 = 0,4592.

0,5 es el máximo con dos clases y solo se da con 7 y 7. Para ese mismo nodo: entropía 0,9403 y tasa de error 0,3571; no los confundas.

Se reemplaza un atributo positivo por su logaritmo. ¿Cambia el árbol? la erraste en Q3

No. El logaritmo es estrictamente creciente y conserva el orden: cada corte candidato produce los mismos hijos y la misma Δ. Es el mismo árbol con los umbrales en la nueva escala. "Comprime distancias" es la lógica de kNN o SVM, no de árboles.

Padre 8+/8−. Corte A: (6,2) y (2,6). Corte B: (4,0) y (4,8). ¿Cuál elige Gini?

Padre: 0,5. A: cada hijo 0,375 → ponderada 0,375 → Δ = 0,125. B: hijos 0 y 0,444 con pesos 4/16 y 12/16 → ponderada 0,333 → Δ = 0,167. Elige B. Sin ponderar por tamaño el cálculo está mal.

¿La ganancia de información es un criterio distinto de la reducción de impureza? la erraste en Q3

Falso. Es la reducción de impureza con Imp = entropía: los bits que la pregunta ahorra. Un corte perfecto ahorra todo, IG = H(padre).

¿Qué hace cada hiperparámetro con la complejidad?

Más max_depth → más flexible (menos sesgo, más varianza). Más min_samples_leaf o más ccp_alpha → árbol más chico (más sesgo, menos varianza). Se eligen por validación, nunca mirando el error de entrenamiento.

¿De dónde sale el log n del costo O(p n log n)? la erraste en Q3

Del ordenamiento inicial de cada atributo. Con el orden heredado a los hijos, cada nivel es lineal. Reordenar en cada nodo daría O(p n log² n).

2 · Bagging y random forests

clase 14

Promediar muchos árboles completos baja la varianza y no toca el sesgo. El random forest además los hace menos parecidos entre sí.

Maqueta: varianza de un promedio

σ² = 4 fijo. Subí B y mirá el piso que no se puede cruzar: ρσ². Por eso el bosque ataca ρ.

Var(promedio) = ρσ² + (1 − ρ)σ² / B

Maqueta: muestra bootstrap y out-of-bag

n extracciones con reposición. El número es cuántas veces salió cada observación; las grises quedaron afuera (OOB) y sirven para validar ese árbol gratis.

Lo que hay que saber

BaggingB muestras bootstrap → B árboles completos en paralelo → promedio (regresión) o voto (clasificación).
Solo sirve con modelos inestablesBagging de una regresión logística casi no cambia nada. Con árboles (varianza alta) rinde.
OOBCada muestra deja afuera ≈ 36,8 % (e⁻¹). La predicción OOB de una observación usa solo los árboles que no la vieron. Estima lo mismo que CV sin costo extra.
Random forestEn cada corte solo compiten mtry atributos al azar. Cada árbol empeora un poco, baja ρ y el bosque mejora. mtry se ajusta.
Más B nunca sobreajustaEl sesgo no depende de B y la varianza baja hacia el piso. Solo cuesta cómputo.
ImportanciasPor impureza: premia atributos con muchos valores distintos. Por permutación en datos no vistos: corrige eso. Ambas reparten el crédito entre correlacionados.
Trampa: "el voto reduce el sesgo" es falso. Ningún árbol mejoró: se cancela la parte del error que depende de la muestra; la parte compartida (el sesgo de escalera del árbol) queda igual.

Preguntas con respuesta

σ² = 4, B = 100, ρ = 0,2. ¿Varianza del promedio? ¿Y cuando B → ∞?

4·[0,2 + 0,8/100] = 0,832. Con B → ∞ tiende a ρσ² = 0,8. Agregar árboles ya casi no ayuda; hay que bajar ρ (mtry).

¿Aumentar B en un bosque puede sobreajustar? práctica oficial 8.2

Falso. Los árboles son idénticamente distribuidos: el sesgo del promedio es el de uno y la varianza decrece con B hasta ρσ². Más árboles no empeoran el error de prueba.

¿Por qué un árbol solo erra 0,28 y el voto de 200 erra 0,17?

El error propio de cada muestra difiere entre árboles y se cancela parcialmente en el voto. El error que todos comparten no se cancela.

¿Qué controla mtry?

Cuántos atributos compiten en cada corte. Chico → árboles más distintos (menos ρ) pero cada uno más sesgado. mtry = p es bagging. Se elige por validación u OOB.

3 · Boosting

clase 16

Árboles chicos en secuencia: cada uno se ajusta a lo que los anteriores todavía hacen mal. Baja el sesgo; puede sobreajustar.

Maqueta: gradient boosting con stumps

Cada etapa ajusta un stump a los residuos y lo suma multiplicado por η. Mirá a la derecha qué pasa con el error de validación cuando seguís sumando etapas.

Bagging vs boosting vs stacking

Bagging / RFBoostingStacking
ConstrucciónEn paralelo, independientesEn secuencia, cada uno depende de los anterioresModelos base distintos
Qué recibe cada miembroUna muestra bootstrapAdaBoost: datos reponderados. Gradient boosting: residuosLos datos originales
MiembroÁrbol completoStump o árbol chico (prof. 1–5)Cualquiera
CombinaciónPromedio / voto de igual pesoSuma ponderadaUn meta-modelo entrenado con sus predicciones
ReduceVarianzaSesgo—
¿Más miembros sobreajusta?NoSí—

Lo que hay que saber

AdaBoost, paso a pasoPesos iniciales 1/n → ajustar miembro → errb ponderado → voto αb = log((1−err)/err) → pesos de los mal clasificados × eα → renormalizar.
Predicción AdaBoostsign(Σ αb fb(x)): voto ponderado; los más precisos pesan más.
Aprendiz débilMejor que el azar y peor que perfecto: 0 < errb < ½. Por eso stumps.
Pérdida exponencialAdaBoost es un modelo aditivo por etapas que minimiza e−yF. Por eso se concentra en observaciones mal etiquetadas.
Gradient boostingDescenso por gradiente en el espacio de funciones. Con pérdida cuadrática, gradiente negativo = residuo.
B, η y tamaño van juntosη menor necesita más etapas y suele llegar a menor error. El tamaño del árbol fija el orden de las interacciones. B se elige con parada temprana sobre validación.
XGBoost / LightGBMEl mismo algoritmo con ingeniería: histogramas, regularización explícita, faltantes nativos.
Stacking honestoEl meta-modelo se entrena con predicciones out-of-fold de los modelos base.
Trampa (ejercicio 2 oficial): usar un árbol completo como base de AdaBoost. Clasifica todo el entrenamiento, err₁ = 0, α₁ sería infinito, no hay nada que reponderar y la secuencia termina con un solo árbol. No se probó boosting: se probó el mismo árbol.

Preguntas con respuesta

¿Cómo se construyen los árboles en boosting? la erraste en Q4

En secuencia: cada uno se ajusta a una versión del problema modificada por los errores de los anteriores. No hay bootstrap ni promedio de igual peso: eso es bagging.

¿Qué reduce principalmente cada método? la erraste en Q4

Bagging: varianza. Boosting: sesgo. El promedio de miembros idénticamente distribuidos tiene el sesgo de uno. Una secuencia de stumps (sesgo alto) va quitando sesgo; η controla que no vuelva la varianza.

¿Qué es un aprendiz débil con dos clases? la erraste en Q4

Uno cuyo error es apenas menor que ½. Mayor que ½ sería un clasificador invertido (voto negativo); igual a 0 no deja nada para corregir.

¿Cómo combina stacking los modelos base? la erraste en Q4

Con un meta-modelo que usa las predicciones de los base como entradas. En boosting los pesos salen del error de cada etapa; en stacking los aprende otro modelo.

En gradient boosting, ¿más etapas pueden aumentar el error de validación? práctica oficial 8.3

Verdadero. Cada etapa sigue bajando el costo de entrenamiento; cuando ya no queda señal, ajusta ruido. Por eso B se fija con validación o parada temprana (nunca con el conjunto de prueba).

¿Qué es un stump?

Un árbol con un solo corte y dos hojas. Solo compara un atributo con un umbral: sesgo alto. Promediarlos no arregla eso; sumarlos en secuencia sí.

4 · Máquinas de vectores de soporte

clase 17

Entre todas las fronteras que separan, la SVM elige la más alejada de ambas clases (máximo margen). Solo dependen de ella las observaciones del borde: los vectores de soporte.

Maqueta: SVM con kernel RBF

Una SVM entrenada en vivo. Los puntos con anillo son vectores de soporte. Probá los tres γ del ejercicio 3 oficial.

K(x, x′) = exp(−γ‖x − x′‖²)

γ chico: campanas anchas, todos los puntos influyen, frontera suave casi recta.
γ grande: cada punto influye solo en su entorno, la frontera rodea puntos sueltos (islas) y casi todos son vectores de soporte.

Lo que hay que saber

Margen blandoSi las clases se solapan se permiten violaciones penalizadas: ½‖w‖² + C·Σξi. Es pérdida hinge + penalización L2.
C = inverso de la regularizaciónC grande: pocas violaciones, margen angosto, sigue los datos (más varianza). C chico: margen ancho, más sesgo.
Vectores de soporteLos que están sobre el margen o lo violan (αi > 0). El resto puede moverse o desaparecer sin cambiar la frontera.
Truco del kernelEl problema dual usa los datos solo mediante productos internos. Reemplazarlos por K(x,x′) ajusta una frontera lineal en un espacio transformado sin calcular sus coordenadas.
Escalar es obligatorioEl kernel usa distancias: un atributo en unidades grandes domina. StandardScaler dentro del pipeline.
LímiteEscala mal con n (memoria n², tiempo entre n² y n³) y no da coeficientes interpretables.
Síntoma de memorización: una proporción alta de vectores de soporte (153 de 160). Accuracy de entrenamiento ≈ 1 y mucho peor en datos nuevos. C y γ se eligen juntos con búsqueda en grilla y validación cruzada.

Preguntas con respuesta

Mismo γ, sube C. ¿Qué cambia?

C es el precio de cada unidad de violación del margen. Al subirlo se toleran menos violaciones: margen más angosto, frontera más ajustada a los datos, menos sesgo y más varianza.

Se elimina una observación que no es vector de soporte y se reajusta. ¿Cambia la solución? práctica oficial 8.4

No cambia (verdadero). La solución es una suma sobre los vectores de soporte; las demás observaciones tienen αi = 0 y no participan. Están del lado correcto, fuera del margen.

¿Qué aporta el kernel?

Una frontera no lineal en el espacio original sin construir las coordenadas transformadas (que pueden ser infinitas, como en RBF): basta con evaluar K entre pares de observaciones.

¿En qué se parece a la regresión regularizada?

Tiene la misma forma Pérdida + Penalización: hinge + L2, con λ = 1/(2C).

5 · Redes neuronales

clase 18

Cada capa hace una transformación afín seguida de una no linealidad: a = g(W·aanterior + b). La capa oculta lleva los datos a un espacio nuevo; la de salida es un modelo lineal ahí.

Maqueta: un forward a mano

x = (1, −2), W = [[1, 1], [2, −1]], b = (0, 1), ReLU; salida y = [1, −1]·a + 0,5.

Contador de parámetros (capas densas)

Cada capa: (entradas + 1 bias) × unidades.

Salida y pérdida van en pareja

TareaSalidaPérdida
Regresiónidentidaderror cuadrático
Binariasigmoideentropía cruzada binaria
K clasessoftmaxentropía cruzada

Lo que hay que saber

Una unidad = un hiperplanoPerceptrón, sigmoide y softmax son clasificadores lineales. Sin capa oculta, la red es regresión lineal o logística.
Sin no linealidad, la profundidad no sumaComponer transformaciones afines da otra afín: cualquier cantidad de capas con activación identidad colapsa en un modelo lineal.
Backpropagation ≠ descenso por gradienteBackprop calcula el gradiente (regla de la cadena, pasada hacia atrás). El descenso por gradiente lo usa para actualizar los pesos.
Aproximación universalUna capa oculta puede aproximar cualquier función continua. No garantiza que el entrenamiento encuentre los pesos ni que generalice.
Costo no convexoDistintas inicializaciones llegan a mínimos distintos; la escala inicial de los pesos decide si el gradiente sobrevive.
Controlar el sobreajusteL2 (weight decay), dropout y parada temprana mirando validación. Atributos escalados.
Trampa: "más capas ⇒ más expresiva" solo vale con activaciones no lineales. Y la parada temprana se decide con validación; el conjunto de prueba queda reservado.

Preguntas con respuesta

¿Una red con dos capas ocultas y activación identidad puede representar XOR? práctica oficial 8.5

Falso. La composición de capas afines es afín: la frontera sigue siendo un hiperplano, y XOR no es linealmente separable. Hace falta una activación no lineal (ReLU, sigmoide, tanh).

En la maqueta, ¿cuánto da la salida y cuántos parámetros hay?

z = (1−2+0, 2+2+1) = (−1, 5) → ReLU → a = (0, 5) → y = 1·0 − 1·5 + 0,5 = −4,5. Parámetros: 4 pesos + 2 biases + 2 pesos + 1 bias = 9.

¿Cómo cambiás la red si la tarea pasa a clasificación binaria?

Salida con una unidad sigmoide y pérdida de entropía cruzada binaria. Esa pareja es máxima verosimilitud y el gradiente respecto de la preactivación de salida queda proporcional al residuo ŷ − y.

¿Qué ajustarías en una red de una capa oculta?

Cantidad de unidades ocultas (capacidad) y la regularización L2 alpha; además la tasa de aprendizaje y la cantidad de épocas con parada temprana.

6 · Redes convolucionales

clase 19

Una capa convolucional asume dos cosas de una imagen: localidad (cada unidad ve una ventana chica) y pesos compartidos (el mismo filtro en todas las posiciones).

Maqueta: el filtro recorriendo la imagen

Filtro 3×3 que detecta bordes verticales. Cada salida es la suma de ventana × filtro. Cambiá stride y padding y mirá el tamaño de salida.

Calculadora de dimensiones y parámetros

lado de salida = ⌊(d + 2q − r) / s⌋ + 1  ·  parámetros = filtros × (r² × canales_entrada + 1)

Lo que hay que saber

Por qué no una densaTrata la imagen como lista sin orden: un peso por píxel por unidad y no usa que los píxeles vecinos se relacionan.
Los parámetros no dependen del tamaño de la imagenSolo del filtro, los canales de entrada y la cantidad de filtros.
Equivariancia a traslaciónSi la entrada se desplaza, el mapa de activación se desplaza igual. No detecta el patrón rotado ni a otra escala.
PoolingResume cada ventana (máximo o promedio), sin parámetros; reduce resolución y tolera corrimientos pequeños.
Arquitectura típicaLos mapas se achican, los canales crecen, el campo receptivo se agranda con la profundidad, y termina en una cabeza densa.
Lo que la arquitectura no sabeData augmentation (solo sobre entrenamiento) y fine-tuning de una red preentrenada: con menos datos, más capas congeladas.
No confundas: equivariancia (la salida se mueve con la entrada) con invariancia (la salida no cambia). La convolución da la primera; el pooling aporta algo de la segunda, solo para corrimientos chicos.

Preguntas con respuesta

Imagen 32×32×3, 16 filtros 3×3, stride 1, sin padding. ¿Salida y parámetros? ¿Y tras max pooling 2×2 con stride 2?

Lado: (32 − 3)/1 + 1 = 30 → 30×30×16. Parámetros: (3·3·3 + 1)·16 = 448. Pooling → 15×15×16, sin parámetros nuevos.

¿Por qué los parámetros de un filtro no dependen del ancho de la imagen?

Porque el mismo filtro se aplica en todas las posiciones (pesos compartidos). Una imagen más grande da un mapa de salida más grande, no más pesos.

Tengo pocas imágenes etiquetadas. ¿Qué hago?

Transferencia: reusar las capas bajas (generales) de una red preentrenada, congelarlas y reentrenar las altas. Sumar data augmentation con transformaciones que conserven la etiqueta, aplicadas solo al entrenamiento.

7 · Agrupamiento

clases 20–21

Sin respuesta y, cada algoritmo define a su manera qué es un grupo, y siempre devuelve grupos aunque no existan. Un agrupamiento no es correcto o incorrecto: es útil o no.

Maqueta: mismo dato, tres definiciones de grupo

Elegí "núcleo + arco" (la figura del ejercicio 5 oficial) y compará qué hace cada método.

Alterna dos pasos: cada punto va al centroide más cercano; cada centroide se mueve a la media de su grupo. La inercia nunca sube, pero llega a un mínimo local que depende de la inicialización.

Maqueta: DBSCAN a mano (ejercicio 4 oficial)

Ocho puntos en una dimensión. La vecindad incluye al propio punto. Debajo de cada uno, el tamaño de su ε-vecindad.

Lo que hay que saber

k-medias: su supuesto está en su costoAsignar al centroide más cercano corta el espacio con hiperplanos: celdas convexas, grupos compactos de tamaño y dispersión parecidos. Todo punto queda asignado, también los atípicos.
Elegir KLa inercia siempre baja al subir K: no sirve sola. Codo y silhouette media son heurísticas que pueden discrepar.
DBSCANNúcleo: ≥ mpts vecinos en radio ε (contándose). Frontera: no es núcleo pero está en la vecindad de uno. Ruido: ni una ni otra. Grupos de cualquier forma.
Elegir εGráfico de distancias al mpts-ésimo vecino ordenadas: el codo. ε muy chico → todo ruido; muy grande → un solo grupo.
Jerárquico y enlacesSimple: distancia mínima, sigue formas alargadas, sufre encadenamiento. Completo: máxima. Ward: fusiona lo que menos aumenta la varianza interna → grupos compactos y parejos.
Leer un dendrogramaAltura = distancia a la que se fusionan. Se corta donde hay un salto grande de altura; las ramas que cruza la línea son los grupos.
Mezclas gaussianasAsignación blanda (probabilidad de pertenecer). k-medias es su caso límite con covarianzas esféricas iguales.
ValidaciónSilhouette (interna) comparte los supuestos del algoritmo: alta no prueba grupos "verdaderos". Rand ajustado necesita una partición de referencia.
Trampa: usar k-medias en anillos o lunas. La partición que devuelve tiene menor inercia que la verdadera: el algoritmo no falla, optimiza otra cosa. Y siempre escalar antes: todos estos métodos usan distancias.

Preguntas con respuesta

Dendrograma "en escalera" vs dendrograma balanceado: ¿cuál es enlace simple y cuál Ward? práctica oficial 6

Escalera = simple: los puntos se suman de a uno a un grupo que crece, a alturas chicas y parecidas (encadenamiento). Balanceado con alturas que crecen mucho = Ward: fusiona grupos compactos de tamaño parecido y la altura mide aumento de varianza.

¿Qué es el encadenamiento?

El enlace simple une dos grupos si un par de puntos está cerca. Una cadena de puntos intermedios hace de puente y un grupo va absorbiendo a los demás: queda uno enorme y algunos sueltos (27, 7 y 3).

¿Qué enlace usás para grupos alargados o curvos? ¿Y para compactos de tamaño parecido?

Alargados o curvos: simple (sigue la conectividad; ojo con puentes y ruido). Compactos y parejos: Ward (mismo criterio de varianza que k-medias).

¿Por qué no puedo elegir K por la menor inercia?

Porque decrece siempre al aumentar K y vale 0 con K = n. Hace falta otro criterio: codo, silhouette y, sobre todo, para qué se van a usar los grupos.

¿Qué ventaja tiene que DBSCAN etiquete un punto como ruido frente a k-medias?

k-medias obliga a asignarlo a un grupo y ese punto arrastra el centroide. DBSCAN lo deja afuera, no distorsiona los grupos y no pide K.

8 · Análisis de componentes principales

clase 22

La primera componente es la dirección unitaria en la que los datos centrados varían más; cada siguiente resuelve lo mismo, ortogonal a las anteriores.

Maqueta: buscá la dirección de máxima varianza

Girá la recta. Los puntos naranjas son las proyecciones (los scores). Abajo, la varianza capturada según el ángulo: PC1 es el pico y PC2 queda a 90°.

¿Cuántas componentes?

Lo que hay que saber

RecetaCentrar (y estandarizar si las unidades difieren) → SVD de la matriz centrada X̃ = U S Vᵀ.
Loadings vs scoresLoadings = columnas de V: las direcciones, pesos de cada atributo original. Scores = US = X̃V: las coordenadas de cada observación.
Varianza explicadaVarianza de la componente j = sj²/(n−1). Proporción = sj² / Σ s². Son los autovalores de la covarianza.
Elegir M es una decisiónUmbral de varianza acumulada, codo del scree plot o validación cruzada si después viene un modelo.
Mejor aproximación de rango MProyectar y reconstruir comprime y quita ruido cuando la señal se concentra en pocas direcciones.
LímitesNo mira y: puede descartar justo la dirección de baja varianza que predice. Solo ve estructura lineal. Un plano 2D puede ocultar grupos.
Trampa: PCA mide varianza, así que las unidades deciden. Una variable en pesos y otra en metros: sin estandarizar, PC1 es la de números más grandes. Y dentro de un pipeline, PCA se ajusta solo con el entrenamiento de cada fold.

Preguntas con respuesta

Autovalores 6, 3 y 1. ¿Cuántas componentes para explicar al menos 85 %?

Total 10. PC1 = 60 %, PC1+PC2 = 90 % → alcanzan dos.

¿PCA es selección de atributos?

No, es extracción: construye combinaciones lineales nuevas en las que todos los atributos pesan. Hay que seguir midiendo todos y las coordenadas nuevas no tienen significado directo. La selección conserva columnas originales.

Reduje con PCA y el modelo empeoró. ¿Por qué puede pasar?

PCA elige direcciones por varianza sin mirar y. La dirección que separa las clases puede ser de baja varianza y quedar descartada. M se valida junto con el modelo.

Veo dos grupos en el plano PC1–PC2. ¿Eso valida mi clustering?

No. La proyección es una vista parcial: puede ocultar grupos o sugerir separaciones. Sirve para mirar, no para validar.

9 · Embeddings

clase 23

Un embedding es un vector denso cuya posición se aprende resolviendo una tarea. Los objetos que cumplen roles parecidos terminan cerca: la geometría viene de la tarea, no de las entradas.

Maqueta: similitud coseno

Hacé clic en una palabra. El coseno compara direcciones e ignora largos: mirá "auto" y "bici".

cos(a, b) = a·b / (‖a‖ ‖b‖)

One-hot y bolsa de palabras vs embedding

One-hot / bolsa de palabrasEmbedding
FormaDisperso, dimensión = tamaño del vocabularioDenso, pocas dimensiones
Qué codificaIdentidad: todo par distinto está a la misma distancia y con coseno 0Similitud: cercanía = rol parecido en la tarea
De dónde saleRegla fija (contar)Aprendido con descenso por gradiente
Lo aprendido sobre una categoríaNo se transfiere a otraSe transfiere a las vecinas

Lo que hay que saber

La capa de embedding es una tablaMultiplicar un one-hot por la tabla E selecciona una fila. Es una capa densa sin bias cuyas filas se entrenan con el resto de la red.
Con palabras, la tarea es predecir el contextoDe ahí salen vecinos y analogías (rey − hombre + mujer ≈ reina), con sus límites.
Preentrenado = atributo listoSirve como entrada de cualquier modelo, para búsqueda por similitud, clustering y visualización con PCA. Rinde más cuando hay pocos datos etiquetados.
Hereda todoSesgos sociales, idioma y dominio de los datos de entrenamiento pasan al modelo que lo use.
PCA vs embeddingPCA encuentra el subespacio con álgebra lineal, sin tarea. El embedding lo aprende resolviendo una tarea.
Trampa: comparar cosenos de dos espacios distintos. Cada espacio tiene su propia escala; un 0,7 en uno no equivale a un 0,7 en otro.

Preguntas con respuesta

Coseno entre u = (1, 1) y v = (2, 0).

u·v = 2; ‖u‖ = √2; ‖v‖ = 2 → 2/(2√2) = 1/√2 ≈ 0,707.

¿Qué determina qué palabras quedan cerca?

La tarea de entrenamiento y sus datos: palabras que aparecen en contextos parecidos reciben gradientes parecidos y terminan cerca.

Con vectores de norma 1, ¿coseno o distancia euclídea?

Da lo mismo para ordenar vecinos: sobre vectores normalizados ambos producen el mismo orden.

10 · Selección de atributos

clase 24

Elegir atributos es parte de ajustar el modelo. Si la selección mira las etiquetas de todos los datos antes de partir, la validación cruzada ya está contaminada.

Maqueta: la fuga, simulada en tu navegador

60 observaciones, 1500 atributos de ruido puro y etiquetas al azar. La accuracy real de cualquier modelo es 50 %. Se eligen los 15 atributos más correlacionados con y, y se evalúa con validación cruzada de 5 folds.

Las tres familias (más la extracción)

FamiliaCómo decideEjemplosOjo
FiltroPuntúa cada atributo por separado, sin ajustar el modelocorrelación, F, información mutua, SelectKBestCiego a atributos que solo sirven juntos (XOR); deja pasar copias
WrapperRecorre subconjuntos ajustando el modelo en cada unomejor subconjunto, hacia adelante, hacia atrás, híbrida, RFECaro; mayor riesgo de sobreajustar la selección
EmbebidoSelecciona mientras ajustaLasso, importancias de árbolesLasso conserva uno de cada grupo correlacionado, y cuál cambia con la muestra
ExtracciónConstruye columnas nuevasPCANo es selección: no conserva columnas originales

Lo que hay que saber

Hacia adelante / hacia atrásCodiciosas: agregan (o quitan) de a uno el atributo que más mejora el RSS. La híbrida agrega y, tras cada adición, quita los que ya no aportan.
RFE ≠ hacia atrásRFE ajusta un modelo por paso y elimina el de menor |coeficiente| (con atributos estandarizados) o menor importancia. Hacia atrás reajusta un modelo por cada candidato.
El RSS no elige el tamañoNunca aumenta al agregar un atributo: elegiría siempre el modelo completo. Para el tamaño: Cp, AIC, BIC, R² ajustado o validación cruzada.
SondasAtributos que se saben irrelevantes (ruido o columnas permutadas). Se descarta lo que quede por debajo; la búsqueda se detiene cuando entra la primera.
EstabilidadJaccard promedio entre subconjuntos elegidos en remuestras. Mide reproducibilidad, no calidad, y se compara contra el valor del azar.
Lo único que puede ir antes del splitFiltrado no supervisado, como descartar atributos de varianza casi nula: no usa y.
La regla: todo paso que mira y va dentro del Pipeline que recibe cross_val_score, así se repite en cada fold solo con su parte de entrenamiento. Que el subconjunto cambie entre folds no es un defecto: se estima el error del procedimiento.

Preguntas con respuesta

En cada paso, ¿qué elimina RFE con un modelo lineal? la erraste en Q6

El atributo de menor coeficiente en valor absoluto, con atributos estandarizados (sin eso los coeficientes dependen de las unidades). "El que menos aumenta el RSS al reajustar" es selección hacia atrás.

Un método que evalúa cada subconjunto candidato ajustando el modelo con él es… la erraste en Q6

Un wrapper. Filtro: no ajusta ningún modelo. Embebido: selecciona mientras ajusta. Extracción: construye atributos nuevos.

¿Por qué el RSS sirve para elegir dentro de un tamaño pero no entre tamaños? la erraste en Q6

Porque nunca aumenta al agregar un atributo (el modelo anterior sigue disponible poniendo el coeficiente nuevo en cero). Favorece siempre al modelo con los p atributos. No es ruido: es un sesgo sistemático.

Eligen las 20 variables más correlacionadas con y usando todos los datos y después hacen CV. ¿Alcanza con que el clasificador no vea el fold de validación?

No. El selector ya usó las etiquetas de esos folds. Hay que meter el selector en el pipeline para que se reajuste en cada fold. Si además se ajustan hiperparámetros, reservar un test final o usar validación anidada.

¿Un filtro con información mutua detecta x₁ y x₂ en el problema XOR?

No. La dependencia es entre la clase y el par, no con cada atributo por separado. Cualquier ranking univariado es ciego a eso.

¿Cuántos modelos ajustan mejor subconjunto y selección hacia adelante?

Mejor subconjunto: 2p (p = 10 → 1024). Hacia adelante, contando el nulo: 1 + p(p+1)/2 (p = 20 → 211).

11 · Comparación, ajuste y producción

clase 25

Comparar bien es darle a todos los modelos el mismo trato y tocar el conjunto de prueba una sola vez.

El protocolo completo

1 · DefinirObjetivo y métrica antes de comparar.
2 · PartirTrain / test estratificado. El test se guarda.
3 · Pipeline por familiaImputar, codificar, escalar, seleccionar: todo adentro.
4 · AjustarBúsqueda de hiperparámetros con CV estratificada sobre train, mismos folds para todos.
5 · ElegirMedia ± desvío entre folds. Empates: criterios prácticos.
6 · ReajustarEl elegido, sobre todo el train.
7 · TestUna sola vez, al final, para reportar.

Preparación y dos perillas por familia práctica oficial 7

FamiliaPreparaciónDos hiperparámetros y qué controlan
ÁrbolImputar; codificar categóricas. Sin escalar.max_depth o ccp_alpha: tamaño del árbol · min_samples_leaf: datos mínimos por hoja
Bosque aleatorioIgual que el árbol.max_features (mtry): correlación entre árboles · n_estimators: B, suficientemente grande (o min_samples_leaf)
Gradient boostingIgual; algunas implementaciones aceptan faltantes.n_estimators junto con learning_rate: cuánto avanza y cuándo parar · max_depth: orden de las interacciones
SVM RBFImputar, one-hot y estandarizar.C: penalización de violaciones del margen · gamma: alcance de cada observación
Red (1 capa oculta)Imputar, one-hot y estandarizar.N.º de unidades ocultas: capacidad · alpha (L2) o parada temprana: regularización

Lo que hay que saber

Fuga de datosImputadores, escaladores, codificadores y selectores se ajustan solo con el entrenamiento de cada fold. Cuidado también con atributos que contienen información del futuro.
Clases desbalanceadas (12 % positivos)Accuracy engaña: decir siempre "no" da 88 %. Usar PR-AUC, F1 o recall/precisión; partición estratificada; class_weight o ajuste de umbral.
Grupos y tiempoVarias filas de la misma persona → partir por grupos. Dependencia temporal → entrenar con el pasado y validar con el futuro.
Empate técnicoSi la diferencia es menor que la variación entre folds, decidir por simplicidad, interpretabilidad, costo de entrenar y predecir, estabilidad, calibración y mantenimiento.
Qué se despliegaEl pipeline completo ajustado (preprocesamiento + modelo), el esquema y orden de atributos, y la configuración para reproducir.
El test no eligeSi lo usás para decidir algo, deja de estimar el error en datos nuevos.

Preguntas con respuesta

Pocos datos etiquetados y muchos atributos. ¿Qué proponés?

Un baseline simple y regularizado (por ejemplo logística con L1/L2). Alternativas: selección supervisada dentro del pipeline; PCA (no usa y, puede perder la dirección útil); embeddings preentrenados (transfieren información, pero pueden no calzar con el dominio). Nada se asume: se valida.

¿Cuándo estratificar la partición?

En clasificación, sobre todo con clases desbalanceadas: mantiene la proporción de positivos en cada parte y evita folds casi sin positivos.

12 · Práctica oficial, resuelta

consigna oficial del curso

Los ocho ejercicios que mandó el docente, con la consigna completa. Respondé primero; después abrí la resolución, que es propia y no oficial.