¿Qué son las máquinas de vector de soporte (SVM)?

27 de diciembre de 2023

¿Qué son las SVM?

Una máquina de vectores de soporte (SVM) es un algoritmo de aprendizaje automático supervisado que clasifica los datos al encontrar una línea o hiperplano óptimo que maximice la distancia entre cada clase en un espacio N-dimensional.

Las SVM fueron desarrolladas en la década de 1990 por Vladimir N. Vapnik y sus colegas, y publicaron este trabajo en un artículo titulado "Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing"1 en 1995.

Las SVM se emplean comúnmente en problemas de clasificación. Distinguen entre dos clases encontrando el hiperplano óptimo que maximiza el margen entre los puntos de datos más cercanos de clases opuestas. El número de características en los datos de entrada determina si el hiperplano es una línea en un espacio bidimensional o un plano en un espacio n-dimensional. Dado que se pueden encontrar múltiples hiperplanos para diferenciar clases, la maximización del margen entre puntos permite al algoritmo encontrar la mejor frontera de decisión entre clases. Esto, a su vez, le permite generalizar bien nuevos datos y hacer predicciones de clasificación precisas. Las líneas adyacentes al hiperplano óptimo se conocen como vectores de soporte, ya que estos vectores atraviesan los puntos de datos que determinan el margen máximo.

El algoritmo SVM se emplea ampliamente en el aprendizaje automático ya que puede manejar tareas de clasificación tanto lineales como no lineales. Sin embargo, cuando los datos no son separables linealmente, las funciones del kernel se utilizan para transformar el espacio multidimensional de los datos y permitir la separación lineal. A esta aplicación de las funciones del kernel (o núcleo) se le conoce como el “truco del kernel”, y la elección de funciones del kernel, como núcleos lineales, núcleos polinomiales, núcleos de función de base radial (RBF, sigla en inglés de radial basis function) o núcleos sigmoides, depende de las características de los datos y del caso de uso específico.

Tipos de clasificadores SVM

SVM lineales

Las SVM lineales se emplean con datos separables linealmente. Esto significa que los datos no necesitan someterse a ninguna transformación para separar los datos en diferentes clases. El límite de decisión y los vectores de soporte forman la apariencia de una calle, y el profesor Patrick Winston del MIT emplea la analogía de "ajustar la calle más ancha posible"2 (enlace externo a ibm.com) para describir este problema de optimización cuadrática. Matemáticamente, este hiperplano de separación se puede representar de la siguiente manera:

wx + b = 0

donde w es el vector de ponderación, x es el vector de entrada y b es el término de sesgo.

Existen dos enfoques para calcular el margen, o la distancia máxima entre clases, que son la clasificación de margen duro y la clasificación de margen blando. Si empleamos una SVM de margen duro, los puntos de datos estarán perfectamente separados fuera de los vectores de soporte, o "fuera de la calle" para seguir con la analogía del profesor Hinton. Esto se representa con la fórmula,

(wxj + b) yj ≥ a,

y luego se maximiza el margen, que se representa como: max ɣ= a / ||w||, donde a es el margen proyectado sobre w.

La clasificación de margen suave es más flexible, ya que permite algunos errores de clasificación mediante el uso de variables de holgura (`ξ`). El hiperparámetro C ajusta el margen; un valor C mayor estrecha el margen para una clasificación errónea mínima, mientras que un valor C menor lo amplía, permitiendo más datos clasificados erróneamente 3.

SVM no lineales

Gran parte de los datos del mundo real no son linealmente separables, y ahí es donde entran en juego las SVM no lineales. Para que los datos sean linealmente separables, se aplican métodos de preprocesamiento a los datos de entrenamiento para transformarlos en un espacio de características de mayor dimensión. Dicho esto, los espacios de mayor dimensión pueden crear más complejidad al aumentar el riesgo de sobreajuste de los datos y convertirse en una carga computacional. El "truco del núcleo" ayuda a reducir parte de esa complejidad, haciendo que el cálculo sea más eficiente, y lo hace sustituyendo los cálculos del producto de punto por una función de núcleo equivalente4.

Existen varios tipos de kernel diferentes que se pueden aplicar para clasificar datos. Algunas funciones del kernel populares incluyen:

  • Kernel polinómico

  • Kernel de función de base radial (también conocido como kernel gaussiano o RBF)

  • Kernel sigmoide

Regression de vectores de soporte (SVR)

La regression de vector de soporte (SVR) es una extensión de SVM, que se aplica a problemas de regression (es decir, el resultado es continuo). Al igual que las SVM lineales, SVR encuentra un hiperplano con el margen máximo entre los puntos de datos y, por lo general, se utiliza para la predicción de series de tiempo.

La regresión de vectores de soporte (SVR) se diferencia de la regresión lineal en que debe especificar la relación que desea comprender entre las variables independientes y dependientes. Al emplear la regresión lineal, es importante comprender las relaciones entre las variables y sus direcciones. Esto es innecesario para las SVR, ya que determinan estas relaciones por sí solas.

Diseño 3D de pelotas rodando en una pista

Las últimas novedades e insights sobre IA 


Descubra insights y noticias de expertos sobre IA, la nube y mucho más en el boletín semanal Think. 

Cómo funcionan las SVM

En esta sección, analizaremos el proceso de creación de un clasificador SVM, cómo se compara con otros algoritmos de aprendizaje supervisado y sus aplicaciones dentro de la industria actual.

Creación de un clasificador SVM

Divida sus datos

Al igual que con otros modelos de aprendizaje automático, comience dividiendo sus datos en un conjunto de entrenamiento y un conjunto de prueba. Por otro lado, esto supone que ya realizó un análisis exploratorio de sus datos. Si bien esto no es técnicamente necesario para crear un clasificador SVM, es una buena práctica antes de usar cualquier modelo de aprendizaje automático, ya que esto le permitirá conocer los datos faltantes o los valores atípicos.

Generar y evaluar el modelo

Importe un módulo SVM de la biblioteca de su elección, como scikit-learn (enlace externo a ibm.com). Entrene a sus muestras de entrenamiento en el clasificador y prediga la respuesta. Puede evaluar el rendimiento comparando la precisión del conjunto de prueba con los valores previstos. Es recomendable que emplee otras métricas de evaluación, como el valor f1, la precisión o la recuperación.

Ajuste de hiperparámetros

Los hiperparámetros se pueden ajustar para mejorar el rendimiento de un modelo SVM. Los hiperparámetros óptimos se pueden encontrar utilizando métodos de búsqueda de cuadrícula y validación cruzada, que iterarán a través de diferentes valores de kernel, regularización (C) y gamma para encontrar la mejor combinación.

SVM frente a otros clasificadores de aprendizaje supervisado

Se pueden emplear diferentes clasificadores de aprendizaje automático para el mismo caso de uso. Es importante probar y evaluar diferentes modelos para comprender cuáles funcionan mejor. Dicho esto, puede ser útil comprender las fortalezas y debilidades de cada uno para evaluar su aplicación para su caso de uso.

SVM vs naive bayes

Tanto las clasificaciones Naive Bayes como SVM se emplean comúnmente para tareas de clasificación de texto. Las SVM tienden a funcionar mejor que Naive Bayes cuando los datos no son separables linealmente. Dicho esto, las SVM tienen que ajustarse a diferentes hiperparámetros y pueden ser más costosas desde el punto de vista computacional.

SVM vs regression logística

Las SVM suelen funcionar mejor con conjuntos de datos de alta dimensión y no estructurados, como datos de imágenes y texto, en comparación con regression. Las SVM también son menos sensibles al sobreajuste y más fáciles de interpretar. Dicho esto, pueden ser más costosos desde el punto de vista computacional.

SVM vs decision trees

Las SVM funcionan mejor con datos de alta dimensión y son menos propensas al sobreajuste en comparación con los decision trees. Dicho esto, los decision trees suelen ser más rápidos de capacitar, especialmente con conjuntos de datos más pequeños, y generalmente son más fáciles de interpretar.

SVM frente a neural networks

Al igual que otras comparaciones de modelos, las SVM son más costosas de capacitar computacionalmente y menos propensas al sobreajuste, pero las neural networks se consideran más flexibles y escalables.

Aplicaciones de SVM

Mientras que las SVM se pueden aplicar para una variedad de tareas, estas son algunas de sus aplicaciones más populares en diversas industrias.

Clasificación de texto

Las SVM se emplean comúnmente en el procesamiento del lenguaje natural (NLP) para tareas como análisis de opiniones, detección de spam y modelado de temas. Se prestan a estos datos porque funcionan bien con datos de alta dimensión.

Clasificación de imágenes

Las SVM se aplican en tareas de clasificación de imágenes como la detección de objetos y la recuperación de imágenes. También puede ser útil en el ámbito de la seguridad, clasificando una imagen como manipulada.

Bioinformática

Las SVM también se emplean para la clasificación de proteínas, el análisis de la expresión génica y el diagnóstico de enfermedades. Las SVM se aplican a menudo en la investigación del cáncer (enlace externo a ibm.com)  porque pueden detectar tendencias sutiles en conjuntos de datos complejos.

Sistema de información geográfica (SIG)

Las SVM pueden analizar estructuras geofísicas en capas subterráneas, filtrando el "ruido" de los datos electromagnéticos. También ayudan a predecir el potencial de licuefacción sísmica del suelo, que es relevante para el campo de la ingeniería civil.

Mixture of Experts | Podcast

Decodificación de la IA: Resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el revuelo de la IA para ofrecerle las últimas noticias e insights al respecto.

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Diseñe aplicaciones de IA en menos tiempo y con menos datos.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia en IA líder en la industria y la cartera de soluciones de IBM a su lado.

Explore las soluciones de IA
Consultoría y servicios de IA

Reinvente los flujos de trabajo y las operaciones críticas añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Conozca los servicios de IA
Dé el siguiente paso

Obtenga acceso único a capacidades que abarcan el ciclo de vida del desarrollo de IA. Produzca potentes soluciones de IA con interfaces fáciles de usar, flujos de trabajo y acceso a API y SDK estándar de la industria.

Explore watsonx.ai Reserve una demostración en vivo
Notas de pie de página

Todos los enlaces se encuentran fuera de ibm.com

1 Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing

Conferencia 16 notas sobre las máquinas de vectores de apoyo, Patrick Winston, MIT, 2010

Introducción a las máquinas de vectores de soporte, Boswell, Dustin, Caltech, 2002

Support vector machines, Sontag, David, New York University