Máquinas Soporte Vectorial (SVM)

 

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;

Curso de ChatGPT (GRATIS)

 

Manu Duque Soy Yo

¡Hola google! hay un pequeño problema de naming, nombre de marca ó marca personal, llámalo como quieras. Resulta que para el nombre de marca: «Manu Duque», aparecen resultados en las SERPs que no corresponden exactamente

Leer más »