Objetivos
- Entender KNN como el clasificador más simple posible —no aprende parámetros, memoriza— y qué implica eso para su sesgo, su varianza y su costo en predicción.
- Formular la SVM como el problema de maximizar el margen, entender el papel de los vectores de soporte y del hiperparámetro .
- Comprender el truco del kernel: cómo una frontera no lineal sale de un clasificador lineal en un espacio que nunca se construye.
- Saber qué tienen en común los tres clasificadores de la sesión (exigen escalado) y en qué se diferencian (forma de la frontera, costo, probabilidades).
1. K vecinos más cercanos (KNN)
La idea
Para clasificar un punto nuevo : buscar los puntos de entrenamiento más cercanos y devolver la clase mayoritaria entre ellos (o, para probabilidades, la fracción de cada clase). No hay fase de entrenamiento: el “modelo” es el conjunto de datos. Es el caso extremo de un método no paramétrico.
La distancia habitual es la euclidiana, ,
aunque cualquier distancia sirve (Manhattan, coseno para texto). Lo que siempre hace
falta es que las variables estén en la misma escala: sin estandarizar, total_sulfur_dioxide
(rango 6–440) domina la distancia y density (rango 0.99–1.04) no participa.
es la perilla sesgo-varianza
| Frontera | Sesgo | Varianza | |
|---|---|---|---|
| Sigue cada punto; memoriza el ruido | Mínimo | Máxima | |
| moderado (15–50) | Suave, local | Moderado | Moderada |
| Predice siempre la clase mayoritaria | Máximo | Nula |
Es exactamente la curva en U de 05-sesgo-varianza-validacion.md, con en el eje de
complejidad (al revés: pequeño = modelo complejo). Se elige con validación cruzada, como
cualquier hiperparámetro.
Por qué KNN con es el detector de fugas por duplicados
Si una fila de entrenamiento aparece también en validación, su vecino más cercano está a
distancia cero y KNN con acierta gratis. 02-clasificacion-aplicado.ipynb lo mide
sobre Wine Quality: con las 1177 filas duplicadas dentro, KNN () obtiene un F1 de 0.66 —
mejor que la logística y que la SVM—; al quitarlas, 0.47. La fuga no solo inflaba un número,
elegía al modelo equivocado, y favorecía sistemáticamente al que memoriza. Cualquier
modelo con capacidad de memorizar (árboles profundos, boosting con muchas rondas) sufre la
misma fuga en menor grado.
Costos
- Entrenar: nada (guardar los datos).
- Predecir: calcular distancias en dimensiones por cada punto nuevo, . Con estructuras como KD-tree o Ball-tree mejora en dimensiones bajas, pero en alta dimensión degenera a fuerza bruta.
- Maldición de la dimensionalidad: en muchas dimensiones, todos los puntos están a distancias parecidas y “el vecino más cercano” deja de ser informativo. KNN funciona bien con pocas variables relevantes y muchos datos; mal al revés.
2. Máquinas de vectores de soporte (SVM)
El margen
Para dos clases linealmente separables hay infinitos hiperplanos que las separan. La SVM elige el que está más lejos de los puntos más cercanos de cada clase: el que maximiza el margen. La intuición es que un hiperplano con margen amplio es más robusto a pequeñas perturbaciones de los datos —tiene menos varianza— que uno que pasa rozando.
Con etiquetas y frontera , el margen es , y maximizarlo equivale a
La solución depende solo de los puntos que quedan exactamente sobre el margen: los vectores de soporte. Mover o quitar cualquier otro punto no cambia la frontera. Esa es la diferencia estructural con la regresión logística, donde todos los puntos contribuyen al gradiente (menos los que ya están muy bien clasificados, que contribuyen poco).
Margen blando y el hiperparámetro
Con datos no separables (todos los reales), se permite que algunos puntos violen el margen, pagando una penalización por cada uno:
controla el compromiso:
- grande: violar el margen es caro → margen estrecho que intenta clasificar bien todos los puntos de entrenamiento → baja regularización, alta varianza.
- pequeño: se toleran violaciones → margen amplio, frontera más suave → alta regularización, alto sesgo.
Es decir, juega el papel de , igual que en LogisticRegression. La función
de pérdida implícita es la hinge loss : cero para los
puntos correctamente clasificados y fuera del margen, lineal para los demás.
Kernels: fronteras no lineales sin construir el espacio
Si las clases no son separables por un hiperplano, se pueden mapear los datos a un espacio
de mayor dimensión donde sí lo sean (por ejemplo, añadiendo — la regresión polinómica de 03-multicolinealidad-polinomica.md hacía lo mismo).
El truco del kernel es que la solución de la SVM solo necesita productos punto
, nunca explícitamente. Una función kernel
los calcula directamente:
| Kernel | Espacio implícito | |
|---|---|---|
| Lineal | El original | |
| Polinómico | Todos los monomios hasta grado | |
| RBF (gaussiano) | Dimensión infinita |
El kernel RBF es el habitual por defecto. Su hiperparámetro controla el alcance de
cada punto: grande → cada vector de soporte influye solo en su vecindad inmediata →
frontera muy irregular (alta varianza); pequeño → influencia amplia → frontera casi
lineal. y se afinan juntos, típicamente en una rejilla logarítmica, y son
un caso natural para random search u Optuna (06-seleccion-hiperparametros.md).
Probabilidades
La SVM no produce probabilidades: produce la distancia con signo al hiperplano
(decision_function). Para curvas ROC y PR basta con eso — solo hace falta un orden. Para
comparar umbrales en la misma escala que la logística, SVC(probability=True) ajusta una
regresión logística sobre esa distancia (calibración de Platt) con una validación cruzada
interna, lo que multiplica el tiempo de entrenamiento. La calibración de probabilidades en
general es un tema 🔵 opcional del módulo.
Costos
Entrenar una SVM con kernel escala entre y : es la más lenta de los tres
clasificadores de la sesión, y con más de unas decenas de miles de filas se vuelve poco
práctica (en 02-clasificacion-aplicado.ipynb, con 4256 filas y probability=True, tarda
alrededor de un segundo por ajuste frente a milisegundos de la logística). Para datos grandes, LinearSVC (sin kernel)
o directamente boosting (S11).
3. Los tres clasificadores de la sesión, lado a lado
| Logística | KNN | SVM (RBF) | |
|---|---|---|---|
| Frontera | Lineal | Local, arbitraria | No lineal, suave |
| Parámetros aprendidos | coeficientes | Ninguno (memoriza) | Vectores de soporte y sus pesos |
| Hiperparámetros | (regularización) | , distancia | , , kernel |
| Probabilidades | Sí, nativas | Sí (fracción de vecinos, granular) | No; Platt opcional |
| Interpretación | Razones de momios | Ninguna directa | Ninguna directa |
| Exige escalado | Sí (por la regularización) | Sí (por la distancia) | Sí (por la distancia) |
| Costo de predicción | |||
| Costo de entrenamiento | Bajo | Nulo | Alto (–) |
Sobre Wine Quality (02-clasificacion-aplicado.ipynb), con validación cruzada estratificada,
los tres quedan en un AUC-ROC de 0.80–0.83 y una AP de 0.50–0.53. Ninguno de los tres
domina; la frontera no lineal de la SVM apenas se nota sobre la logística. La sesión 10
mostrará que los ensambles de árboles sí mueven esa cifra, y 06-interpretabilidad.md
explicará qué encuentran en las variables que estos tres no.
Resumen
| Concepto | Idea | Dónde reaparece |
|---|---|---|
| KNN | Memorizar y votar; es la perilla sesgo-varianza | Detector de duplicados; base de DBSCAN y de UMAP (S12) |
| Margen máximo | El hiperplano más robusto es el más lejano a las clases | — |
| Vectores de soporte | Solo los puntos del margen definen la frontera | — |
| y | Regularización y alcance; se afinan juntos | Búsqueda de hiperparámetros del proyecto |
| Truco del kernel | Frontera no lineal sin construir el espacio | PCA con kernel (S12, 🔵) |
Notebook: 02-clasificacion-aplicado.ipynb.