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

27 de diciembre de 2023

¿Qué son las SVM?

Una máquina de vectores de soporte (SVM) es un algoritmo de machine learning supervisado que clasifica los datos mediante la búsqueda de una línea o un hiperplano óptimos que maximice la distancia entre cada clase en un espacio N-dimensional.

Vladimir N. Vapnik y sus colegas desarrollaron las SVM en la década de 1990 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 utilizan habitualmente 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 entidades en los datos de entrada determina si el hiperplano es una línea en un espacio 2D o un plano en un espacio n-dimensional. Dado que se pueden encontrar varios hiperplanos para diferenciar clases, maximizar el margen entre puntos permite al algoritmo encontrar el mejor límite de decisión entre clases. Esto, a su vez, permite que se generalice bien a nuevos datos y haga predicciones de clasificación precisas. Las líneas adyacentes al hiperplano óptimo se conocen como vectores de soporte, ya que estos vectores recorren los puntos de datos que determinan el margen máximo.

El algoritmo SVM se utiliza ampliamente en el machine learning, ya que puede manejar tareas de clasificación tanto lineales como no lineales. Sin embargo, cuando los datos no son separables linealmente, se utilizan funciones de núcleo para transformar los datos en un espacio de mayor dimensión y permitir la separación lineal. Esta aplicación de las funciones de kernel puede conocerse como el "truco de kernel", y la elección de la función de kernel, como los kernels lineales, los kernels polinómicos, los kernels de función de base radial (RBF) o los kernels 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 utilizan con datos separables linealmente; esto significa que los datos no necesitan sufrir ninguna transformación para separarlos 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 utiliza la analogía de "encajar 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 puede representarse como:

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 utilizamos SVM de margen duro, los puntos de datos estarán perfectamente separados fuera de los vectores de soporte, o "fuera de la calle" para continuar 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 blando es más flexible y permite cierta clasificación errónea 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óneamente3.

SVM no lineales

Gran parte de los datos en escenarios del mundo real no son separables linealmente, 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 al convertirse en una carga computacional. El "truco del núcleo" ayuda a reducir parte de esa complejidad, haciendo el cálculo más eficiente, y lo hace sustituyendo los cálculos del producto punto por una función de núcleo equivalente4.

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

  • Núcleo polinomial

  • Núcleo de función de base radial (también conocido como núcleo gaussiano o RBF)

  • Núcleo sigmoide

Regresión de vectores de soporte (SVR)

La regresión de vectores de soporte (SVR) es una extensión de las SVM, que se aplica a problemas de regresión (es decir, el resultado es continuo). Al igual que las SVM lineales, la SVR busca un hiperplano con el máximo margen entre los puntos de datos y se utiliza normalmente para la predicción de series temporales.

La SVR se diferencia de la regresión lineal en que es necesario especificar la relación que se desea comprender entre las variables independientes y dependientes. La comprensión de las relaciones entre las variables y sus direcciones es valiosa cuando se utiliza la regresión lineal. Esto no es necesario para las SVR, ya que determinan estas relaciones por sí mismas.

Diseño 3D de bolas rodando por un circuito

Las últimas noticias + conocimientos de IA 


Descubra ideas y noticias de expertos sobre IA, 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, su comparación con otros algoritmos de aprendizaje supervisado y sus aplicaciones en la industria actual.

Creación de un clasificador SVM

Dividir datos

Al igual que con otros modelos de machine learning, empiece por dividir sus datos en un conjunto de entrenamiento y un conjunto de prueba. Por cierto, esto supone que ya ha realizado un análisis exploratorio de los datos. Aunque técnicamente esto no es necesario para crear un clasificador SVM, es una buena práctica antes de utilizar cualquier modelo de machine learning, ya que le permitirá comprender los datos que faltan o los valores atípicos.

Generar y evaluar el modelo

Importe un módulo SVM de la biblioteca que elija, como scikit-learn (enlace externo a ibm.com). Entrene sus muestras de entrenamiento en el clasificador y pronostique la respuesta. Puede evaluar el rendimiento al comparar la precisión del conjunto de pruebas con los valores previstos. Es posible que desee utilizar otras métricas de evaluación, como el valor f, la precisión o el recuerdo.

Ajuste de hiperparámetros

Los hiperparámetros se pueden ajustar para mejorar el rendimiento de un modelo SVM. Los hiperparámetros óptimos pueden encontrarse utilizando métodos de búsqueda en 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.

SVMs frente a otros clasificadores de aprendizaje supervisado

Se pueden utilizar diferentes clasificadores de machine learning para el mismo caso de uso. Es importante probar y evaluar diferentes modelos para comprender cuáles funcionan mejor. Dicho esto, puede ser útil conocer los puntos fuertes y débiles de cada uno para evaluar su aplicación a su caso de uso.

SVM frente a clasificadores Naive Bayes

Tanto la clasificación Naïve Bayes como la SVM se utilizan habitualmente para tareas de clasificación de texto. Las SVM tienden a funcionar mejor que el clasificador Naïve 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 frente a regresión logística

Las SVM suelen funcionar mejor con conjuntos de datos de alta dimensión y no estructurados, como los datos de imágenes y texto, en comparación con la regresión. 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 frente a árboles de decisión

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 árboles de decisión suelen ser más rápidos de entrenar, especialmente con conjuntos de datos más pequeños, y generalmente son más fáciles de interpretar.

SVM vs. redes neuronales

Al igual que en otras comparaciones de modelos, las SVM son más costosas de entrenar y menos propensas al sobreajuste, pero las redes neuronales se consideran más flexibles y escalables.

Aplicaciones de las SVM

Aunque las SVM pueden aplicarse a una serie de tareas, estas son algunas de las aplicaciones más populares de las SVM en todos los sectores.

Clasificación de textos

Las SVM se utilizan habitualmente en el procesamiento del lenguaje natural (PNL) para tareas como el análisis de opiniones, la detección de spam y la modelización de temas. Se prestan a estos datos, ya que 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 utilizan 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 y filtrar el "ruido" de los datos electromagnéticos. También han ayudado a predecir el potencial de licuefacción sísmica del suelo, lo que es relevante para el campo de la ingeniería civil.

Mixture of Experts | Pódcast

Descifrar 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 bullicio de la IA para ofrecerle las últimas noticias y conocimientos al respecto.

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste e implemente IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de nueva generación para desarrolladores de IA. Cree 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 líder en IA del sector de IBM y junto a su cartera de soluciones.

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

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

Explore los servicios de IA
Dé el siguiente paso

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

Explore watsonx.ai Solicite una demostración en directo