- Máquinas de Soporte Vectorial (SVM): Teoría de márgenes y kernel para análisis de sentimiento
Máquinas de Soporte Vectorial (SVM): Teoría de márgenes y kernel para análisis de sentimiento
Odisea Algorítmica: De la Regresión al Aprendizaje Profundo — Descripción Unificada
Las Máquinas de Soporte Vectorial (SVM) son uno de los modelos más poderosos y elegantes dentro del aprendizaje supervisado. Su capacidad para manejar datos de alta dimensionalidad y su fundamento en la teoría de optimización convexa las convierten en una herramienta indispensable para tareas de clasificación, especialmente en el análisis de sentimiento sobre textos. En esta lección exploraremos desde los principios geométricos del hiperplano de separación hasta el truco del kernel, pasando por el delicado balance sesgo-varianza.
Hiperplano de separación y margen máximo
En esencia, una SVM binaria busca un hiperplano que separe dos clases con el mayor margen posible. En un espacio d-dimensional, un hiperplano viene dado por:
w · x + b = 0
donde w es el vector normal y b el sesgo. La clasificación de un punto x se define según el signo de w·x + b. El margen se define como la distancia entre el hiperplano y los puntos más cercanos de cada clase: los vectores soporte.
- Margen máximo: la SVM selecciona el hiperplano que maximiza la distancia a los vectores soporte, lo que mejora la generalización.
- Vectores soporte: solo un subconjunto de los datos de entrenamiento define el modelo; el resto es ignorado. Esto otorga eficiencia y cierta interpretabilidad.
- Problema primal: minimizar
||w||²sujeto a restricciones de clasificación correcta.
Formulación dual y el truco del kernel
El problema de optimización se reformula en su forma dual, donde los datos aparecen únicamente como productos escalares. Esto permite introducir el truco del kernel: reemplazar el producto escalar por una función kernel que proyecta implícitamente los datos a un espacio de mayor dimensionalidad.
K(x, y) = x · yKernel polinomial:
K(x, y) = (γ x·y + r)^dKernel RBF (gaussiano):
K(x, y) = exp(-γ ||x - y||²)
El kernel RBF es el más utilizado por su flexibilidad, pero introduce un hiperparámetro sensible γ (gamma). Un valor muy alto puede producir sobreajuste; muy bajo, subajuste.
Parámetros clave: C y gamma
El parámetro C controla la penalización por errores de clasificación. Un C grande busca clasificar correctamente todos los puntos de entrenamiento (margen más estrecho, posible sobreajuste); un C pequeño permite más errores pero favorece un margen más amplio (mejor generalización).
| Parámetro | Valor bajo | Valor alto |
|---|---|---|
| C (regularización) | Margen amplio, más tolerancia a errores, mayor sesgo | Margen estrecho, menos errores de entrenamiento, mayor varianza |
| γ (RBF) | Frontera más suave, mayor sesgo | Frontera muy flexible, riesgo de sobreajuste (alta varianza) |
Balance sesgo-varianza en SVM: El usuario debe ajustar C y γ (y el kernel) para encontrar un punto óptimo. La naturaleza convexa del problema garantiza que el mínimo global es alcanzable, pero la elección de hiperparámetros requiere validación cruzada.
Aplicación práctica: análisis de sentimiento en reseñas de películas
Para ilustrar el poder de las SVM aplicaremos un clasificador de sentimiento sobre textos cortos (reseñas). El pipeline típico incluye:
- Preprocesamiento: tokenización, eliminación de stopwords, stemming/lematización.
- Vectorización: representación de cada reseña como un vector TF-IDF o Bag-of-Words.
- Selección de kernel: empezamos con un kernel lineal por su rapidez e interpretabilidad. Para datos con relaciones no lineales (por ejemplo, sarcasmo o matices), el kernel RBF suele ser más efectivo.
- Validación cruzada para elegir C y γ (por ejemplo, búsqueda en cuadrícula).
# Ejemplo conceptual de entrenamiento con SVM (en Python usando scikit-learn)
from sklearn.svm import SVC
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.pipeline import Pipeline
modelo = Pipeline([
('vect', TfidfVectorizer(max_features=5000)),
('clf', SVC(kernel='rbf', C=1.0, gamma='scale'))
])
# modelo.fit(X_train, y_train)
La interpretabilidad de los vectores soporte permite identificar qué documentos son los más influyentes en la frontera de decisión. En análisis de sentimiento, los vectores soporte suelen corresponder a reseñas ambiguas o con carga emocional mixta. Examinar estos textos ayuda a depurar el modelo y entender sesgos.
Selección de kernel y sensibilidad a parámetros
- Kernel lineal: recomendado para problemas con muchas características (como textos vectorizados) y relaciones aproximadamente lineales. Rápido y fácil de interpretar.
- Kernel polinomial: útil para interacciones de características hasta grado d. Menos usado en texto porque puede ser costoso y propenso a sobreajuste.
- Kernel RBF: opción por defecto para datos no lineales. Requiere ajuste cuidadoso de
γ. Conγmuy grande, el modelo se vuelve local y ruidoso.
En nuestro problema de sentimiento, tras validación cruzada observamos que un kernel RBF con C=10 y γ=0.01 logra un equilibrio sólido entre precisión y召回 (recall). Los vectores soporte representan aproximadamente el 35% del conjunto de entrenamiento, lo cual es típico en SVM con márgenes suaves.
Conclusión práctica: Las SVM ofrecen un marco teórico robusto y resultados competitivos en clasificación de textos. Su capacidad para manejar espacios de alta dimensión (como TF-IDF) y la flexibilidad del truco del kernel las hacen ideales para análisis de sentimiento. Sin embargo, la sensibilidad a C y γ exige un proceso meticuloso de validación. La interpretabilidad parcial mediante vectores soporte añade una capa de comprensión que a menudo falta en modelos de deep learning.
Lección parte de «Odisea Algorítmica: De la Regresión al Aprendizaje Profundo» — las bases matemáticas y computacionales confluyen en una visión unificada del aprendizaje automático.
No hay comentarios por ahora.
Compartir este contenido
Compartir enlace
Compartir en redes sociales
Compartir por correo electrónico
Please iniciar sesión para compartir esto Artículo por correo electrónico.