Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

Máquina de vectores de soporte (SVM) en aprendizaje automático

Máquinas de vectores soporte
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 entrenar en conjuntos de datos limitados. ¿Pero, qué es esto?

What is a Support Vector Machine (SVM)?

La máquina de vectores de soporte es una máquina de aprendizaje algoritmo que utiliza el aprendizaje supervisado para crear un modelo para la clasificación binaria. Eso es un bocado. Este artículo explicará SVM y cómo se relaciona con el procesamiento del lenguaje natural. Pero primero, analicemos cómo funciona una máquina de vectores de soporte.

How Does SVM Work?

Considere un problema de clasificación simple en el que tenemos datos que tienen dos características, x e y, y una salida: una clasificación que es roja o azul. Podemos trazar un conjunto de datos imaginario que se ve así:

Dibujo sin título

Dados datos como este, la tarea sería 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-titulo-1

Con este límite de decisión, podemos hacer predicciones para la clase a la que pertenece un punto de datos, dado 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 límite de mejor decisión?

Se puede argumentar que el mejor límite de decisión es el que maximiza su distancia desde cualquiera de los vectores de soporte. Los vectores de soporte son puntos de datos de cualquier 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-titulo-2

Por lo tanto, el entrenamiento de una máquina de vectores de soporte implica tratar de encontrar una línea que maximice el margen entre los vectores de soporte.

También es importante señalar que debido a que el límite de decisión está posicionado en relación con los vectores de soporte, estos son los únicos determinantes de la posición del límite de decisión. Los otros puntos de datos son, por lo tanto, redundantes. Y así, el entrenamiento solo requiere los vectores de soporte.

En este ejemplo, el límite de decisión formado es una línea recta. Esto es solo porque el conjunto de datos tiene solo 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 separables no lineales

El ejemplo anterior consideró datos muy simples que, cuando se grafican, pueden separarse por un límite de decisión lineal. Considere un caso diferente donde los datos se grafican de la siguiente manera:

dibujo-sin-titulo-4

En este caso, es imposible separar los datos mediante una línea. Pero podemos crear otra función, z. Y esta característica puede definirse mediante la ecuación: z = x^2 + y^2. Podemos agregar z como un tercer eje al plano para hacerlo tridimensional.

Cuando miramos la gráfica 3D desde un ángulo tal que el eje x es horizontal mientras que el eje z es vertical, esta es la vista que obtenemos algo que se parece a esto:

dibujo-sin-titulo-5

El valor z representa qué tan lejos está un punto del origen en relación con los otros puntos en el antiguo plano XY. Como resultado, los puntos azules más cercanos al origen tienen valores z bajos.

Si bien los puntos rojos más alejados del origen tenían valores z más altos, graficarlos contra sus valores z nos brinda una clasificación clara que puede demarcarse mediante un límite de decisión lineal, como se ilustra.

Esta es una idea poderosa que se utiliza en las máquinas de vectores de soporte. De manera más general, es la idea de mapear las dimensiones en un mayor número de dimensiones para que los puntos de datos puedan estar separados por un límite lineal. Las funciones que son responsables de esto son funciones del núcleo. Hay muchas funciones del 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 grano.

SVM in Machine Learning

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 Redes Neuronales. Se prefiere porque funciona bien con menos datos que otros algoritmos. Se usa comúnmente para hacer lo siguiente:

  • Clasificación de texto: clasificación de datos de texto, como comentarios y reseñas, en una o más categorías
  • Detección de la Cara: Analizar imágenes para detectar caras para hacer cosas como agregar filtros para realidad aumentada
  • Clasificación de imagen: Las máquinas de vectores de soporte pueden clasificar imágenes de manera eficiente en comparación con otros enfoques.

El problema de clasificación de texto

Internet está lleno de montones y montones de datos textuales. Sin embargo, gran parte de estos datos no están estructurados ni etiquetados. Para utilizar mejor estos datos de texto y comprenderlos mejor, es necesario clasificarlos. Ejemplos de momentos en los que se clasifica el texto incluyen:

  • Cuando los tweets se clasifican en temas para que las personas puedan seguir los temas que desean
  • Cuando un correo electrónico se clasifica como Social, Promociones o Spam
  • Cuando los comentarios se clasifican como odiosos u obscenos en foros públicos

How SVM Works With Natural Language Classification

Support Vector Machine se utiliza para clasificar texto en texto que pertenece a un tema en particular y texto que no pertenece al tema. Esto se logra convirtiendo y representando primero los datos de texto en un conjunto de datos con varias características.

Una forma de hacerlo es creando características para cada palabra en el conjunto de datos. Luego, para cada punto de datos de texto, registra la cantidad de veces que aparece cada palabra. Así que supongamos que están ocurriendo palabras únicas en el conjunto de datos; tendrá características en el conjunto de datos.

Además, proporcionará clasificaciones para estos puntos de datos. Si bien estas clasificaciones están etiquetadas por texto, la mayoría de las implementaciones de SVM esperan etiquetas numéricas.

Por lo tanto, deberá convertir estas etiquetas en números antes del entrenamiento. Una vez que se ha preparado el conjunto de datos, usando estas características como coordenadas, puede usar un modelo SVM para clasificar el texto.

Creating an SVM in Python

Para crear una máquina de vectores de soporte (SVM) en Python, puede usar el SVC clase de la sklearn.svm biblioteca. Aquí hay un ejemplo de cómo puede usar el SVC clase 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 SVC clase de la sklearn.svm biblioteca. Luego, cargamos el conjunto de datos y lo dividimos en conjuntos de entrenamiento y prueba.

A continuación, creamos un modelo SVM instanciando un SVC objeto y especificando el kernel parámetro como 'lineal'. Luego entrenamos el modelo en los datos de entrenamiento usando el fit método y evaluar el modelo en los datos de prueba usando el score método. los score El método devuelve la precisión del modelo, que imprimimos en la consola.

También puede especificar otros parámetros para el SVC objeto, como el C parámetro que controla la fuerza de la regularización, y la gamma parámetro, que controla el coeficiente del kernel para ciertos kernels.

Benefits of SVM

Aquí hay una lista de algunos beneficios de usar máquinas de vectores de soporte (SVM):

  • Eficiente: Las SVM son generalmente eficientes para entrenar, especialmente cuando la cantidad de muestras es grande.
  • Robusto al Ruido: Los SVM son relativamente resistentes 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 solo requieren que un subconjunto de los datos de entrenamiento estén en la memoria en un momento dado, lo que las hace más eficientes en términos de memoria que otros algoritmos.
  • Efectivo en Espacios de Altas Dimensiones: Las SVM aún pueden funcionar bien incluso cuando la cantidad de funciones supera la cantidad de muestras.
  • Versatilidad: Las SVM se pueden usar para tareas de clasificación y regresión y pueden manejar varios tipos de datos, incluidos datos lineales y no lineales.

Ahora, exploremos algunos de los mejores recursos para aprender Support Vector Machine (SVM).

Learning Resources

Una introducción a las máquinas de vectores de soporte

Este libro sobre Introducción a las máquinas de vectores de soporte lo introduce de manera integral y gradual a los métodos de aprendizaje basados ​​en kernel.

Le brinda una base sólida en la teoría de las máquinas de vectores de soporte.

Aplicaciones de Máquinas de Vectores de Soporte

Mientras que el primer libro se centró en la teoría de las máquinas de vectores de soporte, este libro sobre las aplicaciones de las máquinas de vectores de soporte se centra en sus aplicaciones prácticas.

Vista previa Producto Clasificación Precio
Aplicaciones de Máquinas de Vectores de Soporte Aplicaciones de Máquinas de Vectores de Soporte $15.52

Examina cómo se utilizan las SVM en procesamiento de imágenes, detección de patrones y visión artificial.

Máquinas de Vectores Soporte (Ciencias de la Información y Estadística)

El propósito de este libro sobre Máquinas de vectores de soporte (ciencias de la información y estadísticas) es proporcionar una descripción general de los principios detrás de la efectividad de las máquinas de vectores de soporte (SVM) en varias aplicaciones.

Los autores destacan varios factores que contribuyen al éxito de las SVM, incluida su capacidad para funcionar bien con un número limitado de parámetros ajustables, su resistencia a varios tipos de errores y anomalías y su rendimiento computacional eficiente en comparación con otros métodos.

Aprendizaje con núcleos

“Learning with Kernels” es un libro que presenta a los lectores las máquinas vectoriales compatibles (SVM) y las técnicas de kernel relacionadas.

Está diseñado para brindar a los lectores una comprensión básica de las matemáticas y el conocimiento que necesitan para comenzar a usar los algoritmos del kernel en el aprendizaje automático. El libro tiene como objetivo proporcionar una introducción completa pero accesible a las SVM y los métodos del kernel.

Admite máquinas vectoriales con Sci-kit Learn

esta línea Admite máquinas vectoriales con Sci-kit Learn curso por el Coursera project network enseña cómo implementar un modelo SVM utilizando la popular biblioteca de aprendizaje automático, Sci-Kit Learn.

Admite máquinas vectoriales con Sci-kit Learn

Además, aprenderá la teoría detrás de las SVM y determinará sus fortalezas y limitaciones. El curso es de nivel principiante y requiere alrededor de 2.5 horas.

Máquinas de vectores de soporte en Python: conceptos y código

Este curso en línea pagado sobre Máquinas de vectores de soporte en Python by Udemy tiene hasta 6 horas de instrucción en video y viene con una certificación.

Máquinas de vectores de soporte en Python: conceptos y código

Cubre SVM y cómo se pueden implementar sólidamente en Python. Además, cubre las aplicaciones comerciales de Support Vector Machines.

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

En este curso de Aprendizaje automático e inteligencia artificial, aprenderá a utilizar máquinas de vectores de soporte (SVM) para diversas aplicaciones prácticas, incluido 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 de soporte en Python

Utilizará el lenguaje de programación Python para implementar modelos ML para estas aplicaciones.

Palabras finales

En este artículo, aprendimos brevemente sobre la teoría detrás de las máquinas de vectores de soporte. Aprendimos sobre su aplicación en Machine Learning y Natural Language Processing.

También vimos cuál es su implementación usando scikit-learn parece. Además, hablamos de las aplicaciones prácticas y beneficios de las Máquinas de Vectores Soporte.

Si bien este artículo fue solo una introducción, los recursos adicionales recomendaron entrar en más detalles y explicar más sobre las máquinas de vectores de soporte. Dado lo versátiles y eficientes que son, vale la pena comprender las SVM para crecer como científico de datos e ingeniero de ML.

A continuación, puede consultar la parte superior modelos de aprendizaje automático.

Gracias a nuestros patrocinadores
Más lecturas interesantes sobre el desarrollo
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder