Las Máquinas de Soporte Vectorial (SVM) son una técnica de aprendizaje supervisado.
Utilizada para problemas de clasificación y regresión.
El concepto clave detrás de SVM es encontrar un hiperplano óptimo
Que separe las clases de datos en un espacio multidimensional.
De manera que se maximice el margen entre los puntos.
De las diferentes clases más cercanos.
A dicho hiperplano.
Definición Matemática
Supongamos un conjunto de datos de entrenamiento.
Donde xi es un vector de características y yi ∈ {−1,1} son las etiquetas de clase.
El objetivo de SVM es encontrar un hiperplano.
w ⋅ x + b = 0
Donde w es el vector de pesos.
x es el vector de entrada y b es el sesgo.
Este hiperplano separa las clases con el mayor margen posible.
Margen y Restricción
El margen se define como la distancia entre el hiperplano.
Los puntos más cercanos vectores de soporte de cada clase.
Maximizar el margen.
Las SVM resuelven el problema de optimización.
Casos Clásicos
Datos Linealmente Separables
Si los datos se pueden separar con un hiperplano lineal.
SVM encuentra el hiperplano con el mayor margen.
Datos No Linealmente Separables
Cuando los datos no son linealmente separables.
SVM utiliza un enfoque llamado truco del núcleo
Mapear los datos a un espacio de mayor dimensión.
Donde puedan separarse linealmente.
Funciones de Núcleo (Kernel)
Las funciones de núcleo transforman los datos.
A espacios de características más elevados.
Permitiendo que SVM maneje problemas no lineales.
Los núcleos más comunes.
SVM para Clasificación
En un problema binario SVM clasifica un nuevo punto x′
En base al signo de la función de decisión.
f (x′) = sign (w⋅x′ + b)
Extensión a Múltiples Clases
Aunque originalmente SVM está diseñado para clasificación binaria.
Se extiende a problemas multiclase.
Mediante estrategias como:
One-vs-One (OvO)
Entrena un clasificador para cada par de clases.
One-vs-All (OvA)
Entrena un clasificador para cada clase contra el resto.
SVM para Regresión (SVR)
En problemas de regresión, las Máquinas de Soporte Vectorial.
Buscan un hiperplano que prediga valores continuos.
En lugar de maximizar el margen.
SVR minimiza un término de pérdida.
Dentro de un margen de tolerancia.
(ϵ) alrededor del hiperplano.
Ventajas de SVM
Eficiencia en Espacios de Alta Dimensionalidad
SVM es ideal para problemas con muchas características.
Robustez frente a Sobreajuste
Especialmente útil cuando el número de características.
Supera al número de muestras.
Flexibilidad con Núcleos
Permite resolver problemas lineales y no lineales.
Máximo Margen
Proporciona una solución óptima.
Al maximizar la separación entre clases.
Desventajas de SVM
Complejidad Computacional
Entrenar SVM puede ser costoso.
Para grandes conjuntos de datos.
Elección del Núcleo
La selección de un núcleo apropiado y sus hiperparámetros.
Es crítica y puede ser compleja.
Sensibilidad a Outliers
Los puntos atípicos pueden afectar.
Significativamente el hiperplano.
Escalabilidad
No es eficiente para conjuntos de datos masivos.
Sin modificaciones.
Aplicaciones de SVM
Clasificación de Textos
Filtrado de correos electrónicos, clasificación de documentos.
Reconocimiento de Imágenes
Clasificación de rostros, dígitos escritos a mano.
Bioinformática
Predicción de estructuras de proteínas, clasificación de genes.
Procesamiento del Lenguaje Natural
Análisis de sentimientos, detección de lenguaje.
Implementación en Python
Ejemplo de clasificación usando SVM con el conjunto de datos Iris.
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# Cargar datos
iris = datasets.load_iris()
X = iris.data
y = iris.target
# Dividir datos en entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Crear y entrenar modelo SVM
svm_model = SVC(kernel=’rbf’, gamma=’scale’)
svm_model.fit(X_train, y_train)
# Predecir y evaluar
y_pred = svm_model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f»Precisión del modelo SVM: {accuracy}»)
Las Máquinas de Soporte Vectorial son un método.
Para problemas de clasificación y regresión.
Su capacidad para manejar tanto problemas lineales como no lineales.
Con su enfoque en maximizar el margen.
Son altamente efectivas en aplicaciones de IA.
Requieren una cuidadosa selección de núcleos.
Parámetros para maximizar su desempeño.
Te puede interesar;