Cómo funciona un SVM (Support Vector Machines)

El algoritmo SVM es uno de los algoritmos más utilizados dentro del machine learning, puesto que tiene unas fuertes bases estadísticas y matemáticas y ha demostrado solvencia en muchísimas aplicaciones prácticas, como por ejemplo el reconocimiento de caracteres manuscritos. Es un algoritmo supervisado, aunque puede actuar también como semi-supervisado. Para comprender cómo funciona SVM, es importante entender la idea de los hiperplanos, puesto que es el fundamento de esta técnica.

Los hiperplanos son planos infinitos en un determinado espacio. En el caso de SVM, estos hiperplanos se denominan “hiperplanos de margen máximo”. Estos se utilizan como soporte de las fronteras para separar dos o más muestras de datos por el grupo al que pertenecen, de tal manera que se pueda conseguir la mejor separación posible. Cada frontera, al ser infinita en una dirección, solo tendrá dos hiperplanos que la soporten, uno a cada lado.

Si los datos son linealmente separables, habrá infinitas fronteras que los separen, puesto que por un punto pueden pasar infinitas rectas, y por lo tanto fronteras. Pero aquí se plantea un problema, y es que en el caso de que haya un nuevo dato, se tendrá que saber cuál de todas esas infinitas fronteras será la que discierna mejor a qué grupo pertenecerá dicho punto. Aquí es donde entran en acción los hiperplanos. Como se ha visto, cada frontera posee dos hiperplanos, que serán paralelos a la frontera, y su ubicación estará determinada por el elemento más cercano que se pueda encontrar desde la frontera hacia cada una de las clases de una forma ortogonal. De este modo, la frontera ideal será la que tenga una mayor distancia con sus hiperplanos de soporte, puesto que será la que tenga un mayor margen con cada una de las clases, y por lo tanto un menor índice de error, puesto que se hace una mejor generalización.

Todo esto es fácilmente apreciable en la siguiente imagen:

En caso de que la frontera deba de ser muy pequeña, normalmente se cae en un caso de overfitting que hay que controlar, puesto que el margen de error para tomar las decisiones es pequeño y la frontera tendrá que ser más ajustada para poder tener unos hiperplanos de soporte lo más amplios posibles.

Es importante a partir de ahora destacar que hay dos tipos de SVM, que son el lineal y el no lineal. En el caso del primero, se busca la frontera con el máximo margen con sus hiperplanos de apoyo, lo que hace que se le conozca también con el nombre de “clasificador de máximo margen». En caso de dar referencia a SVM no lineal, la técnica consiste en la transformación del espacio en el que se encuentran los datos, de tal forma que se pueda aplicar una frontera lineal para separar las clases del problema. A continuación, se expondrán estos diferentes casos que se pueden dar de acuerdo con esta clasificación, y se detallarán en profundidad:

SVM Lineal

Existen dos casos posibles dentro del SVM Lineal:

  1. Caso Separable

En caso de tener un caso separable en un SVM lineal, como se ha comentado anteriormente se está en un caso de clasificador de márgenes máximos. Por ello, la frontera será una recta, y cumplirá la siguiente ecuación: Ax + b = 0

De este modo, el aprendizaje de este algoritmo será la determinación de los valores A y b de la ecuación anterior mediante los datos de entrenamiento.

  1. Caso No Separable

El caso de tener unos datos no separables linealmente hace que haya que tener mucho más cuidado a la hora de elegir la frontera, puesto que a veces muchas fronteras que no incurren prácticamente en errores en el entrenamiento tienen unos márgenes muy pequeños, y generalizan francamente mal. Por ello, en estos casos se debe hacer una aproximación llamada “soft margin”, que consiste en la búsqueda de un equilibrio entre los márgenes de la frontera y el número de clasificaciones erróneas que se dan en el entrenamiento. Esto es reducible en cierto modo en la etapa previa al algoritmo, puesto que si se dividen los datos por su grupo real creando subgrupos, y se detectan los outliers, se puede simplificar este proceso de “soft margin”.

SVM No Lineal

En el  caso de haber un problema de kernel no lineal, se debe hacer la transformación del espacio tal como se explicó anteriormente: Búsqueda de dimensiones donde se pueda realizar una separación lineal de los datos. (Ojo, esto hace que este algoritmo sea computacionalmente costoso)

Así, tras la transformación del espacio, se habrá convertido un problema no lineal en un problema lineal, y se podrán aplicar las técnicas anteriormente descritas para resolver el problema.

Características de los SVM

Algunas de las características principales de SVM son:

  1. Los problemas planteados con SVM son problemas de optimización, que por regla general llegan a la solución encontrando un mínimo global, mientras que otros algoritmos como las redes neuronales artificiales suelen caer en mínimos locales.
  2. Al afrontar un problema con SVM, es importante anotar el tipo de kernel que se usará (lineal o radial), y controlar también la función de coste C.
  3. SVM también funciona con datos categóricos, pero para ello hay que aplicar una binarización, también conocida como dummyficación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Si sigue navegando por esta página daremos por hecho que acepta nuestra política de cookies.    Ver Política de cookies