Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 15 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

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:

Sin título-dibujo

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:

Dibujo sin título-1

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.

Dibujo sin título-2

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:

Dibujo sin título-4

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:

Dibujo sin título-5

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.

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 Aplicaciones de las máquinas de vectores soporte $46.27

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.

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.

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.

Máquinas de vectores soporte con 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.

Máquinas de vectores soporte en Python: Conceptos y Código

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.

Aprendizaje automático e IA: Máquinas de vectores soporte en Python

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.

  • Anesu Kafesu
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre desarrollo
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder