Support Vector Machine es uno de los algoritmos de aprendizaje automático más populares. Es eficiente y puede entrenarse en conjuntos de datos limitados. Pero, ¿qué es?
¿Qué es una máquina de vectores soporte (SVM)?
La máquina de vectores soporte es una aprendizaje automático algoritmo que utiliza el aprendizaje supervisado para crear un modelo de clasificación binaria. Esto es un trabalenguas. Este artículo explicará la SVM y su relación con el procesamiento del lenguaje natural. Pero primero, analicemos cómo funciona una máquina de vectores de soporte.
¿Cómo funciona la SVM?
Consideremos un sencillo problema de clasificación en el que tenemos datos con dos características, x e y, y una salida: una clasificación que puede ser roja o azul. Podemos trazar un conjunto de datos imaginario con este aspecto:

Dados estos datos, la tarea consistiría en crear un límite de decisión. Un límite de decisión es una línea que separa las dos clases de nuestros puntos de datos. Este es el mismo conjunto de datos pero con un límite de decisión:

Con este límite de decisión, podemos predecir a qué clase pertenece un punto de datos, teniendo en cuenta dónde se encuentra en relación con el límite de decisión. El algoritmo Support Vector Machine crea el mejor límite de decisión que se utilizará para clasificar los puntos.
Pero, ¿qué entendemos por mejor límite de decisión?
Se puede argumentar que el mejor límite de decisión es el que maximiza su distancia a cualquiera de los vectores de soporte. Los vectores de soporte son los puntos de datos de una clase más cercanos a la clase opuesta. Estos puntos de datos presentan el mayor riesgo de clasificación errónea debido a su proximidad a la otra clase.

Por tanto, el entrenamiento de una máquina de vectores soporte consiste en intentar encontrar una línea que maximice el margen entre vectores soporte.
También es importante señalar que, dado que el límite de decisión se sitúa en relación con los vectores de apoyo, éstos son los únicos determinantes de la posición del límite de decisión. Los demás puntos de datos son, por tanto, redundantes. Por tanto, el entrenamiento sólo requiere los vectores de soporte.
En este ejemplo, el límite de decisión formado es una línea recta. Esto se debe a que el conjunto de datos sólo tiene dos características. Cuando el conjunto de datos tiene tres características, el límite de decisión formado es un plano en lugar de una línea. Y cuando tiene cuatro o más características, el límite de decisión se conoce como hiperplano.
Datos no separables linealmente
En el ejemplo anterior se han considerado datos muy sencillos que, al trazarlos, pueden separarse mediante una frontera de decisión lineal. Consideremos un caso diferente en el que los datos se trazan de la siguiente manera:

En este caso, separar los datos mediante una recta es imposible. Pero podemos crear otra característica, z. Y esta característica puede definirse mediante la ecuación: z = x^2 + y^2. Podemos añadir z como tercer eje al plano para hacerlo tridimensional.
Cuando miramos el gráfico 3D desde un ángulo tal que el eje x es horizontal mientras que el eje z es vertical, obtenemos algo parecido a esto:

El valor z representa la distancia a la que se encuentra un punto del origen en relación con los demás puntos del antiguo plano XY. Como resultado, los puntos azules más cercanos al origen tienen valores z bajos.
Aunque los puntos rojos más alejados del origen tenían valores z más altos, si los comparamos con sus valores z obtenemos una clasificación clara que puede demarcarse mediante un límite de decisión lineal, como se ilustra.
Se trata de una poderosa idea que se utiliza en las máquinas de vectores soporte. En términos más generales, es la idea de mapear las dimensiones en un número mayor de dimensiones para que los puntos de datos puedan separarse por un límite lineal. Las funciones responsables de esto son las funciones kernel. Hay muchas funciones de núcleo, como sigmoide, lineal, no lineal y RBF.
Para que el mapeo de estas características sea más eficiente, SVM utiliza un truco del núcleo.
SVM en el aprendizaje automático
Support Vector Machine es uno de los muchos algoritmos utilizados en el aprendizaje automático junto con otros populares como Árboles de decisión y las redes neuronales. Es favorito porque funciona bien con menos datos que otros algoritmos. Se suele utilizar para hacer lo siguiente
- Clasificación de textos: Clasificar datos de texto, como comentarios y reseñas, en una o varias categorías.
- Detección de caras: Analizar imágenes para detectar rostros y hacer cosas como añadir filtros para realidad aumentada
- Clasificación de imágenes: Las máquinas de vectores soporte pueden clasificar imágenes de forma eficiente en comparación con otros enfoques.
El problema de la clasificación de textos
Internet está lleno de montones y montones de datos textuales. Sin embargo, muchos de estos datos no están estructurados ni etiquetados. Para utilizar mejor estos datos textuales y comprenderlos mejor, es necesario clasificarlos. Algunos ejemplos de clasificación de texto son
- Cuando los tweets se clasifican por temas para que la gente pueda seguir los temas que desee
- Cuando un correo electrónico se clasifica como Social, Promociones o Spam
- Cuando los comentarios se califican de odiosos u obscenos en foros públicos
Cómo funciona SVM en la clasificación del lenguaje natural
La máquina de vectores de apoyo se utiliza para clasificar texto en texto que pertenece a un tema concreto y texto que no pertenece al tema. Para ello, primero hay que convertir y representar los datos de texto en un conjunto de datos con varias características.
Una forma de hacerlo es crear características para cada palabra del conjunto de datos. A continuación, para cada punto de datos de texto, se registra el número de veces que aparece cada palabra. Supongamos, pues, que en el conjunto de datos aparecen palabras únicas.
Además, proporcionará clasificaciones para estos puntos de datos. Aunque estas clasificaciones están etiquetadas por texto, la mayoría de las implementaciones de SVM esperan etiquetas numéricas.
Por lo tanto, tendrá que convertir estas etiquetas en números antes del entrenamiento. Una vez preparado el conjunto de datos, utilizando estas características como coordenadas, podrá utilizar un modelo SVM para clasificar el texto.
Creación de una SVM en Python
Para crear una máquina de vectores soporte (SVM) en Python, puede utilizar la función SVC
de la clase sklearn.svm
biblioteca. He aquí un ejemplo de cómo puede utilizar la biblioteca SVC
para construir un modelo SVM en Python:
from sklearn.svm import SVC
# Load the dataset
X = ... y = ...
# Split the data into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=19)
# Create an SVM model
model = SVC(kernel='linear')
# Train the model on the training data
model.fit(X_train, y_train)
# Evaluate the model on the test data
accuracy = model.score(X_test, y_test)
print("Accuracy: ", accuracy)
En este ejemplo, primero importamos el archivo SVC
de la clase sklearn.svm
biblioteca. A continuación, cargamos el conjunto de datos y lo dividimos en conjuntos de entrenamiento y de prueba.
A continuación, creamos un modelo SVM instanciando un modelo SVC
y especificando el objeto kernel
como "lineal". A continuación, entrenamos el modelo con los datos de entrenamiento utilizando el método fit
y evaluar el modelo en los datos de prueba utilizando el método score
método. En score
devuelve la precisión del modelo, que imprimimos en la consola.
También puede especificar otros parámetros para el SVC
como el objeto C
que controla la intensidad de la regularización, y el parámetro gamma
que controla el coeficiente del núcleo para determinados núcleos.
Ventajas de SVM
A continuación se enumeran algunas ventajas de utilizar máquinas de vectores soporte (SVM):
- Eficaz: Las SVM suelen ser eficientes de entrenar, especialmente cuando el número de muestras es grande.
- Resistente al ruido: Las SVM son relativamente robustas al ruido en los datos de entrenamiento, ya que intentan encontrar el clasificador de margen máximo, que es menos sensible al ruido que otros clasificadores.
- Memoria eficiente: Las SVM sólo necesitan un subconjunto de los datos de entrenamiento en memoria en un momento dado, lo que las hace más eficientes en memoria que otros algoritmos.
- Eficaz en espacios de alta dimensión: Las SVM pueden funcionar bien incluso cuando el número de características supera el número de muestras.
- Versatilidad: Las SVM pueden utilizarse para tareas de clasificación y regresión y pueden manejar varios tipos de datos, incluidos datos lineales y no lineales.
Ahora, vamos a explorar algunos de los mejores recursos para aprender Support Vector Machine (SVM).
Recursos de aprendizaje
Introducción a las máquinas de vectores soporte
Este libro sobre Introducción a las máquinas de vectores soporte le introduce de forma exhaustiva y gradual en los métodos de aprendizaje basados en núcleos.
Vista previa | Producto | Valoración | Precio | |
---|---|---|---|---|
![]() |
Introducción a las máquinas de vectores soporte y otros métodos de aprendizaje basados en núcleos | $69.00 | Comprar en Amazon |
Le proporciona una base sólida sobre la teoría de las máquinas de vectores soporte.
Aplicaciones de las máquinas de vectores soporte
Mientras que el primer libro se centraba en la teoría de las máquinas de vectores soporte, este libro sobre Aplicaciones de las máquinas de vectores soporte se centra en sus aplicaciones prácticas.
Vista previa | Producto | Valoración | Precio | |
---|---|---|---|---|
![]() |
Aplicaciones de las máquinas de vectores soporte | $46.27 | Comprar en Amazon |
Examina cómo se utilizan las SVM en tratamiento de imágenesdetección de patrones y visión por ordenador.
Máquinas de vectores soporte (Ciencias de la Información y Estadística)
El propósito de este libro sobre máquinas de vectores soporte (Ciencias de la Información y Estadística) es proporcionar una visión general de los principios que subyacen a la eficacia de las máquinas de vectores soporte (SVM) en diversas aplicaciones.
Vista previa | Producto | Valoración | Precio | |
---|---|---|---|---|
![]() |
Máquinas de vectores soporte (Ciencias de la Información y Estadística) | $134.83 | Comprar en Amazon |
Los autores destacan varios factores que contribuyen al éxito de las SVM, como su capacidad para obtener buenos resultados con un número limitado de parámetros ajustables, su resistencia a diversos tipos de errores y anomalías, y su eficiente rendimiento computacional en comparación con otros métodos.
Aprendizaje con núcleos
"Learning with Kernels" es un libro que introduce a los lectores a las máquinas de vectores soporte (SVM) y a las técnicas de kernel relacionadas.
Vista previa | Producto | Valoración | Precio | |
---|---|---|---|---|
![]() |
Aprendizaje con Kernels: Support Vector Machines, Regularization, Optimization, and Beyond (Aprendizaje... | $80.00 | Comprar en Amazon |
Está diseñado para proporcionar a los lectores una comprensión básica de las matemáticas y los conocimientos que necesitan para empezar a utilizar algoritmos kernel en el aprendizaje automático. El libro pretende ofrecer una introducción exhaustiva pero accesible a las SVM y a los métodos kernel.
Máquinas de vectores soporte con Sci-kit Learn
Esta página Máquinas de vectores soporte con Sci-kit Learn curso por el Coursera red de proyectos enseña cómo implementar un modelo SVM utilizando la popular biblioteca de aprendizaje automático, Sci-Kit Learn.

Además, aprenderá la teoría en la que se basan las SVM y determinará sus puntos fuertes y sus limitaciones. El curso es de nivel principiante y requiere unas 2,5 horas.
Máquinas de vectores soporte en Python: Conceptos y Código
Este curso en línea de pago sobre Máquinas de vectores soporte en Python de Udemy tiene hasta 6 horas de instrucción basada en vídeo y viene con una certificación.

Cubre SVMs y cómo se pueden implementar sólidamente en Python. Además, cubre las aplicaciones empresariales de las máquinas de vectores soporte.
Aprendizaje automático e IA: Máquinas de vectores soporte en Python
En este curso sobre Aprendizaje automático e IACon este curso, aprenderá a utilizar las máquinas de vectores soporte (SVM) para diversas aplicaciones prácticas, como el reconocimiento de imágenes, la detección de spam, el diagnóstico médico y el análisis de regresión.

Utilizará el lenguaje de programación Python para implementar modelos ML para estas aplicaciones.
Palabras finales
En este artículo, hemos aprendido brevemente sobre la teoría detrás de las Máquinas de Vectores Soporte. También hemos aprendido sobre su aplicación en el aprendizaje automático y el procesamiento de lenguaje natural.
También hemos visto lo que supone su aplicación mediante scikit-learn
aspecto. Además, hablamos de las aplicaciones prácticas y las ventajas de las máquinas de vectores soporte.
Aunque este artículo era sólo una introducción, los recursos adicionales recomendaban entrar en más detalles, explicando más sobre las Support Vector Machines. Dado lo versátiles y eficientes que son, merece la pena entender las SVM para crecer como científico de datos e ingeniero de ML.
A continuación, puede consultar el top modelos de aprendizaje automático.