Ir al contenido principal

Support Vector Regression (SVR): cómo funciona y cuándo usarlo

Support Vector Regression es un método de regresión basado en márgenes que ignora a propósito los errores pequeños, maneja relaciones no lineales mediante kernels y se mantiene firme ante datos ruidosos del mundo real donde la regresión estándar se queda corta.
Actualizado 4 jun 2026  · 11 min leer

Los métodos de regresión estándar minimizan el error total en todos los puntos de datos. Eso significa que cada residual, por pequeño que sea, tira del modelo en alguna dirección. El resultado es un modelo sensible al ruido y a los valores atípicos.

Un modelo de Support Vector Regression, en cambio, ajusta una función dentro de un margen de tolerancia e ignora los errores que caen dentro de él. Ese margen cambia el enfoque de la optimización: en lugar de intentar optimizar cada punto, SVR se centra en la estructura global de los datos, lo que lo hace, como espero mostrarte, muy robusto en datos reales.

Si necesitas un repaso antes de empezar, lee nuestro artículo Linear Regression in Python para una introducción al modelado predictivo.

¿Qué es Support Vector Regression?

Support Vector Regression es un método de regresión construido sobre la misma base que las Support Vector Machines (SVM), una clase de modelos diseñada originalmente para tareas de clasificación como detección de spam o reconocimiento de imágenes.

La idea clave es sencilla: en lugar de intentar minimizar cada error de predicción, SVR ajusta una función permitiendo un margen de tolerancia a su alrededor. Los errores que caen dentro de ese margen no cuentan. El modelo prioriza acertar el ajuste global, no corregir cada pequeña desviación.

Eso es lo que diferencia a SVR de la mayoría de modelos de regresión.

Los métodos estándar tratan cada residual como una señal. SVR considera la mayoría como ruido. Así, obtienes un modelo menos preocupado por clavar cada punto y más por capturar la estructura subyacente de los datos.

La idea central detrás de SVR

En el centro de SVR está lo que se conoce como el tubo épsilon: un margen de tolerancia que envuelve a la función ajustada por ambos lados.

Cualquier punto de datos que caiga dentro del tubo se considera suficientemente cercano. SVR los ignora al ajustar el modelo. Solo importan los puntos fuera del tubo, porque son los que realmente dan forma a la frontera de decisión.

Ejemplo del tubo épsilon

Ejemplo del tubo épsilon

Así es como puedes interpretarlo:

  • Los puntos dentro del tubo aportan error cero, independientemente de su distancia a la función
  • Los puntos fuera del tubo aportan un error proporcional a cuánto sobrepasan el margen
  • El modelo queda definido por esos puntos exteriores, no por la mayoría de los datos

Esto es lo que separa SVR de la regresión estándar. En la regresión lineal, cada punto tira del modelo, incluidos los ruidosos. En SVR, la mayoría de puntos son irrelevantes. El resultado es un ajuste guiado por una buena estructura global.

Cómo se optimiza SVR

SVR intenta satisfacer a la vez dos objetivos contrapuestos.

El primero es mantener el modelo lo más plano posible. Una función más plana es más simple, y los modelos simples suelen generalizar mejor. El segundo es minimizar los errores en los puntos fuera del tubo épsilon: aquellos que SVR no puede ignorar.

Estos dos objetivos tiran en direcciones opuestas, y ahí entra el parámetro de regularización C. Controla cuánto peso da SVR a los errores fuera del tubo frente a la simplicidad del modelo:

  • Un valor alto de C indica al modelo que se tome en serio los errores exteriores, lo que puede producir una función más compleja y ajustada
  • Un valor bajo de C permite que el modelo se mantenga simple y acepte más violaciones fuera del margen

Siempre estás equilibrando simplicidad del modelo y tolerancia al error. El valor adecuado de C depende de tus datos y del nivel de ruido esperado. Si te equivocas en cualquier dirección, el rendimiento en datos nuevos caerá.

Es un problema de optimización que puede resolverse de forma iterativa, así que no es algo para preocuparse.

Vectores de soporte en SVR

En SVR, solo importan los puntos de datos que quedan fuera del tubo épsilon.

Estos son los vectores de soporte: los puntos que sobrepasan el margen y dan forma a la función ajustada. Todo lo que queda dentro del tubo se ignora durante el entrenamiento. El modelo nunca “ve” esos puntos de forma significativa.

Vectores de soporte

Vectores de soporte

La consecuencia útil es la esparsidad. En la práctica, solo un pequeño subconjunto de tus datos de entrenamiento acaba siendo vectores de soporte. El resto no aporta nada al modelo final, lo que hace que SVR sea eficiente en memoria y rápido de evaluar una vez entrenado, ya que las predicciones dependen solo de esos pocos puntos influyentes.

Cómo manejar datos no lineales con SVR

SVR no se limita a rectas. Puede manejar relaciones no lineales mediante la técnica conocida como kernel trick.

En lugar de ajustar una función en el espacio de entrada original, SVR mapea los datos a un espacio de mayor dimensión donde un ajuste lineal es posible. Ese ajuste lineal en el espacio de mayor dimensión se traduce de vuelta en una curva no lineal en tus datos originales.

Los kernels más comunes que usarás son:

  • RBF (Radial Basis Function): la elección por defecto para la mayoría de problemas. Maneja bien relaciones suaves y curvadas y funciona en una amplia variedad de conjuntos de datos
  • Polinómico: útil cuando crees que la relación sigue un patrón polinómico de un grado concreto

La elección del kernel depende de tus datos. RBF es un buen punto de partida si no lo tienes claro.

SVR vs regresión lineal

La diferencia se reduce a qué intenta hacer cada modelo.

La regresión lineal minimiza el error total en cada punto. Cada residual cuenta, por pequeño que sea. Si un punto ruidoso saca el modelo de su sitio, todo el ajuste se desplaza para compensarlo.

SVR ignora los errores dentro del tubo épsilon. Solo reacciona a los puntos que caen fuera del margen —y aun así, C controla cuán fuerte—. El modelo optimiza la estructura, no la exactitud en cada punto individual.

Esa diferencia hace que SVR sea más robusto ante valores atípicos. Un único punto ruidoso no arruinará el ajuste como puede ocurrir en la regresión lineal, porque SVR nunca intentó perseguirlo.

Aquí tienes todas las diferencias:

Regresión lineal frente a SVR

Regresión lineal frente a SVR

Parámetros clave en SVR

SVR tiene tres parámetros que debes entender antes de empezar a optimizar el modelo.

Epsilon (ε)

Epsilon define la anchura del margen de tolerancia alrededor de la función ajustada. Un ε mayor significa un tubo más ancho: se ignoran más puntos y el modelo se simplifica. Un ε menor estrecha el tubo y fuerza al modelo a ajustarse más a los datos.

Epsilon pequeño frente a grande

Epsilon pequeño frente a grande

C (regularización)

C controla cuánto penaliza SVR los errores de los puntos fuera del tubo. Un C alto hace que el modelo tome en serio esos errores y se ajuste con más fuerza. Un C bajo permite más violaciones a cambio de una función más simple y plana. C y ε trabajan en conjunto: cambiar uno afecta a cómo se comporta el otro en la práctica.

C pequeño frente a grande

C pequeño frente a grande

Kernel

El kernel determina cómo maneja SVR los patrones no lineales. RBF es la opción más habitual y funciona bien por defecto. Los kernels polinómicos son útiles para formas de curva concretas. Un kernel lineal reduce SVR a una regresión lineal basada en márgenes, útil cuando tus datos ya se comportan bien.

Support Vector Regression en la práctica

Hacer que SVR funcione bien consiste en seguir un par de pasos y cumplir algunos requisitos previos. Te los muestro.

Este es el flujo de trabajo típico:

  1. Escala tus datos: SVR es sensible a la escala de las variables. Si están en escalas distintas, el modelo no se comportará como esperas. Usa StandardScaler tanto en X como en y antes de ajustar

  2. Elige un kernel: RBF es la opción adecuada por defecto en la mayoría de problemas. Cambia a polinómico si tienes motivos para creer que la relación sigue esa forma

  3. Ajusta los parámetros: Define C, epsilon y gamma antes de ajustar. Grid search o validación cruzada son los enfoques estándar

  4. Ajusta el modelo: llama a .fit() sobre los datos de entrenamiento escalados. Una vez entrenado, aplica el inverse transform a tus predicciones para volver a la escala original

Aquí tienes un ejemplo completo con scikit-learn:

import numpy as np
from sklearn.svm import SVR
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# Generate sample data
np.random.seed(42)
X = np.sort(np.random.uniform(0, 10, 30))
y = 2.5 * np.sin(X * 0.8) + np.random.normal(0, 0.4, 30)

# Split
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# Scale features and target
scaler_X = StandardScaler()
scaler_y = StandardScaler()

X_train_scaled = scaler_X.fit_transform(X_train.reshape(-1, 1))
X_test_scaled = scaler_X.transform(X_test.reshape(-1, 1))
y_train_scaled = scaler_y.fit_transform(y_train.reshape(-1, 1)).ravel()

# Fit SVR
svr = SVR(kernel="rbf", C=2.0, epsilon=0.5, gamma=0.3)
svr.fit(X_train_scaled, y_train_scaled)

# Predict and inverse-transform
y_pred_scaled = svr.predict(X_test_scaled)
y_pred = scaler_y.inverse_transform(y_pred_scaled.reshape(-1, 1)).ravel()

rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print(f"Test RMSE: {rmse:.3f}")

RMSE en el conjunto de prueba

RMSE en el conjunto de prueba

Un par de cosas a tener en cuenta en este código. Primero, StandardScaler se aplica por separado tanto a X como a y. Escalar solo las variables explicativas es un error habitual que lleva a malos resultados con SVR. Segundo, las predicciones se invierten al final para devolverlas a la escala original antes de evaluarlas.

Las dos gráficas siguientes muestran el aspecto del modelo ajustado. La primera enseña la curva de SVR con el tubo épsilon sobre los datos de entrenamiento y prueba:

Tubo épsilon sobre los datos de entrenamiento y prueba

Tubo épsilon sobre los datos de entrenamiento y prueba

La segunda compara valores predichos frente a reales en el conjunto de prueba:

Valores predichos frente a reales

Valores predichos frente a reales

Los puntos cercanos a la diagonal indican que el modelo predice bien.

Ventajas y limitaciones de SVR

SVR tiene un conjunto específico de fortalezas que lo hacen la herramienta adecuada en determinadas situaciones. Del mismo modo, tiene debilidades que lo hacen inadecuado en otras.

Ventajas

  • Robusto al ruido: el tubo épsilon hace que los errores pequeños no influyan en el modelo. Los datos ruidosos que desviarían una regresión lineal se ignoran
  • Maneja relaciones no lineales: con el kernel adecuado, SVR ajusta curvas que una regresión estándar no puede sin ingeniería de características manual
  • Flexible: controlas la anchura del margen, la penalización por errores y el kernel, por lo que puedes adaptar el modelo a muchas formas de datos y niveles de ruido

Limitaciones

  • Lento en conjuntos grandes: SVR no escala bien. El tiempo de entrenamiento crece con el número de muestras, lo que lo vuelve poco práctico a partir de cientos de miles de filas.
  • Sensible al ajuste de parámetros: C, epsilon y gamma interactúan entre sí. Una mala combinación reduce el rendimiento, y encontrar una buena lleva tiempo y cómputo, especialmente porque SVR no escala bien
  • Menos interpretable: no hay coeficientes simples que inspeccionar. Entender por qué SVR hizo una predicción concreta no es sencillo, así que si la explicabilidad es imprescindible en tu negocio, este no es tu modelo

Cuándo usar SVR

SVR funciona mejor bajo ciertas condiciones. Úsalo cuando:

  • Tu conjunto de datos es de tamaño moderado: desde unos cientos hasta unos miles de muestras es el punto óptimo
  • La relación entre variables y objetivo es no lineal y no quieres hacer ingeniería de características manual
  • Tus datos tienen ruido o valores atípicos y necesitas un modelo que no se vea afectado por ellos

Evita SVR cuando:

  • Tu conjunto de datos es muy grande: el entrenamiento será lento y puede que no termine en un tiempo razonable
  • La velocidad importa: tanto el entrenamiento como la búsqueda de hiperparámetros son costosos comparados con alternativas como gradient boosting o la regresión lineal

Si tu conjunto es grande y ruidoso, merece la pena mirar primero los métodos de gradient boosting. SVR es ideal cuando tienes datos limpios, de tamaño moderado y con estructuras que los modelos más simples no capturan bien.

Errores comunes con SVR

La mayoría de problemas con SVR se reducen al mismo conjunto de fallos, así que toma esto como una chuleta de lo que no debes hacer.

  • No escalar tus variables. SVR es un algoritmo basado en distancias, lo que significa que las variables sin escalar dominarán el modelo. Aplica siempre StandardScaler tanto a X como a y antes de ajustar.

  • No entender epsilon. Epsilon es, con diferencia, el parámetro más importante. Si es demasiado grande, tu modelo infraajusta porque ignora demasiado. Si es demasiado pequeño, se comporta como una regresión estándar, persiguiendo cada punto. Haz siempre una grid search para ver qué funciona mejor en tu conjunto de prueba.

  • Saltarte el ajuste de parámetros. Ejecutar SVR con valores por defecto y esperar buenos resultados rara vez funciona —como con la mayoría de modelos de machine learning—. C, epsilon y gamma deben ajustarse conjuntamente. Usa grid search con validación cruzada.

  • Usar SVR en conjuntos muy grandes. Si tienes más de unos pocos miles de muestras, SVR será lento. Simplemente no escala como otros algoritmos. Pásate a un modelo que funcione mejor con grandes volúmenes, como gradient boosting o una red neuronal.

También es importante señalar que acertar con estos cuatro puntos no garantiza un gran modelo, pero fallar en cualquiera de ellos casi seguro garantiza uno malo.

Conclusión

Para terminar, recuerda que SVR resuelve un problema distinto al de la regresión estándar. En lugar de minimizar cada error, ajusta una función dentro de un margen e ignora el ruido que cae dentro de él, lo que resulta muy útil cuando tus datos no son limpios o perfectamente lineales.

No destaca por su velocidad o sencillez. Pero sí por su robustez. Si tus datos tienen relaciones no lineales y valores atípicos que no quieres modelar, SVR te permitirá centrarte en la estructura en lugar de perseguir cada punto.

Solo recuerda escalar las variables, ajustar los parámetros, elegir el kernel adecuado y ser conservador con la cantidad de datos. Si haces esto bien, SVR te dará un modelo robusto que es poco probable que falle en producción.

SVR es solo una de las herramientas que todo data scientist debe conocer. Inscríbete en nuestro itinerario Machine Learning Engineer para aprender las demás y estar listo para trabajar en 2026.

Desarrolla habilidades de aprendizaje automático

Eleva tus habilidades de aprendizaje automático al nivel de producción.
Empieza a aprender gratis

Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Científico de Datos Senior con base en Croacia. Top Tech Writer con más de 700 artículos publicados, generando más de 10M de visitas. Autor del libro Automatización del aprendizaje automático con TPOT.

SVR: preguntas frecuentes

¿Qué es Support Vector Regression y en qué se diferencia de la regresión estándar?

Support Vector Regression es un método de regresión que ajusta una función dentro de un margen de tolerancia llamado tubo épsilon e ignora todos los errores que caen dentro de él. Los métodos estándar minimizan el error total en cada punto, lo que los hace sensibles al ruido y a los outliers. SVR solo reacciona a los puntos fuera del margen, con lo que el modelo se centra en la estructura global en lugar de perseguir cada residual.

¿Cuándo debo usar SVR en lugar de otros métodos de regresión?

SVR funciona mejor cuando tu conjunto de datos es de tamaño moderado, la relación entre variables y objetivo es no lineal y tus datos contienen ruido que no puedes eliminar del todo. No es la mejor opción para conjuntos muy grandes, donde el tiempo de entrenamiento es un problema real, ni para situaciones donde importan la velocidad y la interpretabilidad. Si esos condicionantes aplican, merece la pena considerar antes gradient boosting o la regresión lineal.

¿Necesito ajustar los parámetros de SVR para obtener buenos resultados?

Sí: SVR es más sensible a la elección de parámetros que la mayoría de métodos de regresión. Los tres que más importan son C, que controla la penalización de errores fuera del tubo; epsilon, que fija la anchura del margen; y el kernel con sus parámetros asociados como gamma. Ejecutar SVR con valores por defecto rara vez da el mejor resultado, así que lo estándar es usar grid search con validación cruzada.

¿Por qué importa tanto el escalado de variables en SVR?

SVR se basa en distancias entre puntos para ajustar el modelo, lo que implica que las variables en escalas mayores dominarán el resultado. Si omites el escalado, el modelo actuará como si algunas variables fueran más importantes que otras solo por las unidades. Aplica siempre StandardScaler tanto a X como a y antes de ajustar, y revierte la transformación de las predicciones después.

¿Qué controla epsilon en SVR y cómo lo elijo?

Epsilon define la anchura del margen de tolerancia alrededor de la función ajustada: cualquier error de predicción menor que epsilon se trata como cero. Un epsilon grande produce un modelo más simple que ignora más datos, mientras que un epsilon pequeño fuerza un ajuste más cercano y aumenta el número de vectores de soporte. No hay un valor universalmente correcto, así que trátalo como un parámetro más de ajuste y búscalo junto con C y gamma usando validación cruzada.

Temas

Aprende con DataCamp

programa

Aprendizaje automático supervisado en Python

25 h
Domina las técnicas más populares de machine learning supervisado para empezar a hacer predicciones con datos etiquetados.
Ver detallesRight Arrow
Iniciar curso
Ver másRight Arrow