Máquina de Vectores de Soporte (SVM)
Descubra el poder de las máquinas de vectores de soporte (SVM) para la clasificación, la regresión y la detección de valores atípicos, con aplicaciones e información del mundo real.
La máquina de vectores soporte (SVM) es un algoritmo de aprendizaje
algoritmo de aprendizaje supervisado
para tareas de clasificación y regresión de imágenes.
A diferencia de algunos algoritmos que simplemente ajustan una línea a los datos, una SVM busca el hiperplano óptimo -un límite de decisión- que mejor separa los puntos de datos en diferentes clases.
que mejor separa los puntos de datos en diferentes clases. La característica que define a una SVM es que se centra en
maximizar el margen, que es la distancia entre el límite de decisión y los puntos de datos más cercanos de cada clase.
clase. Al dar prioridad a esta amplia separación, el modelo logra una mejor generalización en datos no vistos, reduciendo eficazmente
reducir el riesgo de sobreajuste en comparación con clasificadores
clasificadores lineales más sencillos.
Mecanismos básicos de SVM
Para entender cómo funciona una SVM, es útil visualizar los puntos de datos trazados en un espacio multidimensional en el que
cada dimensión representa un atributo o característica específica.
-
Hiperplano óptimo: El algoritmo identifica un plano que divide el espacio de la variable de entrada. En dos
En dos dimensiones, se trata de una línea; en tres dimensiones, de un plano; y en dimensiones superiores, de un hiperplano. El objetivo es
encontrar el hiperplano específico que mantenga la máxima distancia con los puntos de datos más cercanos de cualquier clase.
-
Vectores de apoyo: Son los puntos de datos específicos que se encuentran más cerca del límite de decisión. Se
Se llaman "vectores de apoyo" porque esencialmente apoyan o definen la orientación y la posición del hiperplano.
del hiperplano. Si se eliminan otros puntos de datos, el límite sigue siendo el mismo, pero si se mueve un vector de apoyo, cambia el modelo.
el modelo. Puede leer más acerca de estos vectores en el
Scikit-learn SVM documentación.
-
El truco del núcleo: Los datos del mundo real rara vez son linealmente separables. SVMs resolver esto mediante una técnica
técnica llamada el truco del kernel, que proyecta los datos en un espacio de mayor dimensión donde un separador lineal efectivamente
divide las clases. Los núcleos más comunes son la función de base radial (RBF) y los núcleos polinómicos, que permiten que el modelo maneje datos complejos y no lineales.
que el modelo maneje relaciones complejas y no lineales que suelen encontrarse en el procesamiento del lenguaje natural (PLN).
procesamiento del lenguaje natural (PLN)
(PLN).
Aplicaciones en el mundo real
Antes de la llegada de las
arquitecturas de aprendizaje profundo, las SVM eran el
para muchos problemas de visión por ordenador y
de patrones.
-
Bioinformática y asistencia sanitaria: Las SVM desempeñan un papel fundamental en
AI en sanidad, especialmente en
problemas de clasificación como la detección de homología remota de proteínas y la clasificación del cáncer basada en datos de expresión génica de microarrays.
microarrays de expresión génica. Su capacidad para manejar datos de alta dimensión con pocas muestras las hace ideales para analizar conjuntos de datos biológicos complejos.
conjuntos de datos biológicos complejos.
-
Categorización de textos: En el campo de la
análisis de datos, las SVM se utilizan ampliamente para la categorización de textos e hipertextos.
e hipertexto. Reducen significativamente la necesidad de instancias de entrenamiento etiquetadas en entornos de clasificación de texto inductivos estándar, lo que las hace eficientes para aplicaciones como la detección de spam y el sentimiento.
de clasificación inductiva de textos, lo que las hace eficaces para aplicaciones como la detección de spam y el análisis del sentimiento.
del sentimiento.
-
Reconocimiento de escritura a mano: Históricamente, las SVM han funcionado excepcionalmente bien en tareas de reconocimiento de dígitos manuscritos
manuscritas, como las del conjunto de datos
conjunto de datosMNIST . Mientras que
redes neuronales convolucionales (CNN)
convolucionales (CNN) han tomado el relevo, las SVM siguen siendo relevantes para la
limitados.
Implementación de un clasificador SVM
Aunque las tareas modernas suelen utilizar el
Ultralytics YOLO11 para la detección de objetos de principio a fin,
Las SVM siguen siendo una potente herramienta para datos estructurados o como capa de clasificación final sobre las características extraídas. En
un ejemplo conciso utilizando el popular scikit-learn para entrenar un clasificador simple.
from sklearn import svm
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
# Generate synthetic classification data
X, y = make_classification(n_features=4, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
# Initialize and train the Support Vector Classifier
clf = svm.SVC(kernel="linear", C=1.0)
clf.fit(X_train, y_train)
# Display the accuracy on the test set
print(f"Accuracy: {clf.score(X_test, y_test):.2f}")
SVM frente a algoritmos relacionados
Distinguir entre SVM y otras técnicas de aprendizaje automático ayuda a seleccionar la herramienta adecuada para un proyecto de modelado predictivo.
proyecto de modelado predictivo.
-
Regresión logística: Ambos son clasificadores lineales, pero sus objetivos de optimización difieren. La regresión logística maximiza la probabilidad de los datos observados (probabilística), mientras que la SVM maximiza el margen geométrico entre clases.
los datos observados (probabilística), mientras que SVM maximiza el margen geométrico entre clases. Los SVM suelen ser más
eficaces cuando las clases están bien separadas, mientras que la regresión logística proporciona probabilidades calibradas.
-
Vecinos más próximos a K (KNN): KNN es un aprendiz no paramétrico basado en instancias que clasifica un punto en función de la clase mayoritaria de sus vecinos.
vecinos. En cambio, SVM es un modelo paramétrico que aprende un límite global. Los SVM suelen ofrecer una latencia de
latencia de inferencia una vez entrenadas, ya que no
necesitan almacenar todo el conjunto de datos, a diferencia de KNN.
-
Árboles de decisión: Un árbol de decisión divide el espacio de datos en regiones rectangulares mediante reglas jerárquicas. Las SVM pueden crear
límites de decisión complejos y curvos (a través de kernels) que los árboles de decisión podrían tener dificultades para aproximar sin volverse excesivamente
demasiado profundos y propensos al sobreajuste.
-
Aprendizaje profundo (por ejemplo, YOLO11): Las SVM dependen en gran medida de la
manual, en la que los expertos
seleccionan las entradas relevantes. Los modelos modernos como YOLO11 destacan en
extracción automática de características
píxeles en bruto, lo que los hace superiores para tareas complejas como la
detección de objetos y
segmentación de instancias.
Para los interesados en la teoría fundamental, el artículo original de
Cortes y Vapnik (1995) proporciona los fundamentos
de las SVM de margen suave que se utilizan hoy en día.