15 · Regresión con vectores de soporte (SVR)
La idea de SVM aplicada a regresión: encuentra la función más plana dentro de un tubo-ε, ignora errores pequeños y penaliza solo lo que sobresale.
SVR encuentra la función MÁS PLANA dentro de un tubo-ε alrededor de los datos — robusta a valores atípicos y naturalmente regularizada.
Sin esto:
Sin SVR pierdes un regresor con kernel que maneja tanto la no linealidad como los valores atípicos de forma elegante.
La clasificación SVM pregunta: "encuentra el margen más amplio que separe dos clases." SVR hace la pregunta paralela: "encuentra la función más plana que ajuste los datos dentro de una banda de tolerancia."
La pérdida ε-insensible
En lugar de penalizar cada error de predicción (como en la pérdida cuadrática), SVR define un "tubo" de ancho ε alrededor de la función ajustada. Los errores menores que ε NO contribuyen nada a la pérdida. Solo los puntos que caen fuera del tubo se penalizan — linealmente, no cuadráticamente.
Esta es la pérdida ε-insensible:
L_ε(y, ŷ) = max(0, |y − ŷ| − ε)
Comparado con:
- Pérdida cuadrática: (y − ŷ)² — cada error duele, los grandes duelen mucho
- ε-insensible: cero por debajo de ε, lineal por encima — como la pérdida Huber pero con una zona muerta
El objetivo SVR
Minimizar ½||w||² + C·Σ(ξᵢ + ξᵢ*)
sujeto a: yᵢ − (wᵀxᵢ + b) ≤ ε + ξᵢ (holgura superior) (wᵀxᵢ + b) − yᵢ ≤ ε + ξᵢ* (holgura inferior) ξᵢ, ξᵢ* ≥ 0
El término ½||w||² lleva a que la función sea plana (baja complejidad). Los puntos dentro del tubo tienen ξᵢ = ξᵢ* = 0. Los puntos fuera se convierten en vectores de soporte.
Hiperparámetros clave
- C — penalización por estar fuera del tubo
- ε — ancho del tubo. ε grande = menos vectores de soporte, ajuste más grueso. ε pequeño = más vectores de soporte, ajuste más preciso.
- kernel/γ — igual que en SVC: elige el nivel de no linealidad
Cuándo brilla SVR
Usa SVR cuando: el conjunto de datos es pequeño a mediano, la relación es no lineal, y esperas valores atípicos o ruido en las etiquetas.
Python (in browser)
El kernel lineal solo puede ajustar una línea recta — pierde completamente el patrón sinusoidal. El polinomial (d=3) captura algo de curvatura pero puede divergir en los bordes. El RBF sigue de cerca el verdadero sin(x) mientras suaviza el ruido.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
La banda verde sombreada es el tubo-ε. Los puntos dentro de la banda (grises) contribuyen cero a la pérdida — el modelo los ignora. Los puntos rojos caen fuera del tubo y se convierten en vectores de soporte — determinan la forma de la curva ajustada. Un ε más ancho significa menos vectores de soporte y un modelo más simple (más plano).
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Con valores atípicos inyectados, `LinearRegression` y `Ridge` son atraídos hacia ellos (la pérdida cuadrática los amplifica). SVR con pérdida ε-insensible les da solo peso lineal — la influencia está acotada. SVR-rbf gana la comparación de MSE por validación cruzada con un margen claro.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
SVR ocupa un nicho útil: regresión no lineal en conjuntos de datos pequeños donde no puedes permitirte el apetito de datos del gradient boosting. El tubo-ε es el diferenciador clave — incorpora robustez a valores atípicos que Ridge y OLS ordinario no tienen.
En SVR, los puntos DENTRO del tubo-ε contribuyen:
- SVR usa la pérdida ε-insensible: penalización cero dentro del tubo, lineal fuera — robusto a valores atípicos por diseño.
- Los puntos dentro del tubo-ε no contribuyen nada a la pérdida y no son vectores de soporte — la dispersión está incorporada.
- C controla la precisión del ajuste; ε controla el ancho del tubo; gamma (para RBF) controla el alcance de cada vector de soporte.
- Siempre StandardScaler antes de SVR; usa SVR para regresión no lineal pequeña/mediana con valores atípicos — cambia a GBM o redes neuronales para conjuntos de datos grandes.
Predicción de rendimientos financieros (datos pequeños + valores atípicos); superficies de respuesta en ingeniería estructural; curvas dosis-respuesta biológicas.
Si lo quitas: Recurrirías a regresión lineal o ajustes polinomiales no robustos y serías penalizado por los valores atípicos.