14 · Kernels de SVM: lineal, polinomial, RBF, sigmoide
El truco del kernel mapea datos a espacios de alta dimensión implícitamente — dando a los SVM fronteras no lineales sin el costo computacional.
El truco del kernel reemplaza el producto punto con una función K(xᵢ,xⱼ) que mapea implícitamente los datos a un espacio de mayor dimensión donde se vuelven separables linealmente.
Sin esto:
Sin el truco del kernel, los SVM estarían atascados en fronteras lineales — y lo mismo le pasaría a los procesos gaussianos, el kernel PCA y la regresión ridge con kernel.
La lección anterior mostró que el objetivo dual del SVM solo usa los puntos de entrenamiento a través de productos punto xᵢᵀxⱼ. El truco del kernel aprovecha esto: en lugar de calcular un mapa de características explícito de alta dimensión ϕ(x), reemplazas cada producto punto con una función kernel:
K(xᵢ, xⱼ) = ϕ(xᵢ) · ϕ(xⱼ)
La magia es que para K elegidas cuidadosamente, puedes calcular este producto interno en el espacio ORIGINAL de forma económica — aunque ϕ mapee a un espacio de dimensión infinita.
Cuatro kernels canónicos
Lineal: K(x, y) = xᵀy El caso degenerado — sin mapa de características, igual que la lección anterior. Usa cuando n_features >> n_samples (ej., clasificación de texto con vectores TF-IDF).
Polinomial: K(x, y) = (γ xᵀy + r)^d Calcula implícitamente todas las características monómicas de grado hasta d. Usa cuando tienes razones para creer que las interacciones entre características importan.
RBF (Función de Base Radial / Gaussiana): K(x, y) = exp(−γ ||x − y||²) El default universal. Puede aproximar CUALQUIER función continua con suficientes vectores de soporte. γ pequeño → influencia amplia y suave; γ grande → influencia estrecha (cada vector de soporte crea una "isla" localizada).
Sigmoide: K(x, y) = tanh(γ xᵀy + r) Históricamente motivado por las redes neuronales. En la práctica, a menudo falla la condición de Mercer y raramente se usa en ML moderno.
Eligiendo γ
Para el kernel RBF, γ controla el "alcance" de cada vector de soporte:
- γ pequeño → frontera suave, riesgo de subajuste
- γ grande → frontera ajustada alrededor de cada vector de soporte, riesgo de sobreajuste
- Regla general: empieza con
gamma='scale'(default de sklearn) y ajusta desde ahí.
Python (in browser)
El kernel lineal falla completamente en los datos en forma de luna no lineales. El polinomial (d=3) comienza a doblar la frontera. RBF ajusta la forma curva naturalmente. El sigmoide tiene mal desempeño aquí — su comportamiento no-Mercer produce fronteras erráticas en datos de baja dimensión.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
De izquierda a derecha, gamma aumenta de 0.01 a 10. Gamma pequeño produce una frontera suave y generalizable. Gamma grande crea 'islas' aisladas alrededor de vectores de soporte individuales — un signo clásico de sobreajuste.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Este es el flujo de trabajo estándar de SVM en la práctica: envuelve en un Pipeline (scaler + SVM), luego GridSearchCV sobre C y gamma. Siempre incluye `StandardScaler` — las distancias RBF no tienen sentido con características sin escalar. El Pipeline asegura que el scaler se ajuste solo en los folds de entrenamiento (sin fuga de datos).
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
La selección del kernel es una decisión de dominio, no de ajuste. Elige el kernel basándote en la estructura de tus datos, luego ajusta C y gamma con validación cruzada. El truco del kernel se generaliza más allá de los SVM — el kernel PCA, la regresión ridge con kernel y los procesos gaussianos usan la misma sustitución K(xᵢ, xⱼ).
Un gamma grande en un SVM con RBF lleva a:
- El truco del kernel reemplaza productos punto con K(xᵢ, xⱼ) = ϕ(xᵢ)·ϕ(xⱼ) — obtienes mapas de características de alta dimensión de forma gratuita.
- RBF es el kernel no lineal predeterminado; lineal se prefiere para datos dispersos de alta dimensión; polinomial cuando el conocimiento del dominio lo sugiere; casi nunca sigmoide.
- Gamma pequeño = frontera suave y global; gamma grande = frontera localizada y propensa al sobreajuste. Siempre ajusta gamma con validación cruzada.
- SIEMPRE StandardScaler antes de SVM con RBF — los kernels basados en distancias son dominados por características con rangos numéricos grandes.
Era pre-deep learning: SVM con RBF era el caballo de batalla para ML tabular. Hoy: la regresión ridge con kernel sigue siendo una línea base sólida; los procesos gaussianos usan los mismos kernels para regresión bayesiana; la atención en transformers es conceptualmente 'kernels suaves aprendidos'.
Si lo quitas: El SVM lineal solo manejaría problemas separables linealmente — la mayoría de la clasificación real es no lineal.