¿Es la máquina de vectores de soporte (SVM) una estructura de datos o un algoritmo?

No es ninguno. Un SVM es un “modelo”.

Una estructura de datos almacena datos dados para que algún conjunto de operaciones pueda realizarse eficientemente en esos datos. Esto es claramente diferente del objetivo de un SVM. Un SVM recibe algunos datos, y necesita hacer predicciones sobre nuevos datos.

Un algoritmo es un procedimiento paso a paso para resolver un problema bien definido, como la ruta más corta en un gráfico, ordenar una matriz, etc.

Ahora, el problema de la clasificación es el siguiente: dado un conjunto de datos de entrenamiento etiquetado, encuentre la mejor función que se espera que funcione bien en los nuevos datos. El “mejor” aquí es la razón por la cual este problema no está bien definido. No existe una noción de “mejor” en la definición del problema. Si define “mejor” como el margen máximo entre las clases, obtiene un SVM, si lo define como maximizar una función logística, obtiene regresión logística, y así sucesivamente.

Entonces, un “modelo” hace que esta noción de “mejor” concreto. Una vez que utiliza un modelo de este tipo, como ab SVM, ahora tiene un problema bien definido: dado un conjunto de entrenamiento, encuentre la función que logre el margen máximo entre las clases. La noción de mejor ahora está formalizada y no hay otra ambigüedad. Esto reduce el problema de clasificación mal definido original a un problema de optimización, y ahora, puede usar un algoritmo (como el algoritmo SMO) que puede resolver este problema de optimización bien definido.

Aquí hay una respuesta relacionada:

La respuesta de Prasoon Goyal a ¿Cuánto del aprendizaje automático es en realidad solo optimización?

Formalmente, una estructura de datos es un formato especializado para organizar y almacenar datos . Una máquina de vectores de soporte ( SVM ) es un clasificador discriminativo definido formalmente por un hiperplano de separación. En otras palabras, dados los datos de entrenamiento etiquetados (aprendizaje supervisado), el algoritmo genera un hiperplano óptimo que categoriza nuevos ejemplos [1].

Los tipos de estructura de datos generales incluyen la matriz, el archivo, el registro, la tabla, el árbol, etc. Cualquier estructura de datos está diseñada para organizar datos que se adapten a un propósito específico para que se pueda acceder a ellos y trabajarlos de manera apropiada [2].

En su forma real, SVM es un clasificador y utiliza algoritmos de entrenamiento que analizan los datos utilizados para el análisis de clasificación y regresión.

Notas al pie

[1] Introducción a las máquinas de vectores de soporte

[2] ¿Qué es la estructura de datos? – Definición de WhatIs.com

Una máquina de vectores de soporte es un clasificador . Esto también se conoce como una familia de funciones que minimiza una función de pérdida.

Los clasificadores, como los SVM, se resuelven con algoritmos, como SMO o, en el caso de regresión logística, descenso de gradiente estocástico. Por “resuelto”, quiero decir que encuentra un conjunto de parámetros para la función que le permiten clasificar bien. A esto lo llamamos entrenamiento.

Una vez que el clasificador ha sido entrenado con un algoritmo , es un modelo .

En contraste, una estructura de datos, como una lista vinculada o un árbol binario, se usa en el nivel de implementación.

La máquina de vectores de soporte es un algoritmo supervisado de aprendizaje automático . En términos simples, clasifica una muestra desconocida en una de las clases dadas usando los datos de entrenamiento.

Las clases se especifican, lo que significa que se utiliza el aprendizaje supervisado.
Una muestra desconocida es aquella en la que se encuentra la clase para esos datos. (también llamado como datos de prueba)
En el aprendizaje supervisado, los datos de entrenamiento son aquellos cuya clase es conocida.

Un ejemplo ingenuo sería de un SVM lineal donde los datos son linealmente separables

En la figura anterior, hay dos clases: Clase 1 y Clase 2. Podríamos separar las dos clases usando tres líneas como se muestra. SVM selecciona la línea que mejor discrimina las dos clases, es decir, la distancia promedio de las líneas desde las dos clases es máxima. Por lo tanto, se selecciona la línea roja. Ahora, si tenemos una muestra desconocida a la derecha de la línea roja, se le asignará la clase 2. Esta es una SVM lineal ya que podríamos discriminar las dos clases usando una línea.

Sin embargo, ¿qué pasa si la separación no es posible en dimensiones lineales?
En tales casos, se usa polinomio SVM.
Este video me pareció útil para comprender la SVM polinómica –

Enlaces adicionales: Comprensión del algoritmo de la máquina de vectores de soporte a partir de ejemplos (junto con el código)

Fuente de la imagen: diggdata.in

Una máquina de vectores de soporte es un algoritmo para clasificar datos:

[matemáticas] f (x) = \ mbox {signo} (\ vec w \ cdot \ vec x + b) [/ matemáticas]

Los parámetros de una máquina de vectores de soporte pueden almacenarse como un vector y un escalar (vector w, escalar b).

Sin embargo, aún necesita averiguar cuáles son esos parámetros; para esto, normalmente se necesita un algoritmo como SMO para encontrar los datos de los parámetros SVM.

Es un algoritmo Utiliza matrices para estructuras de datos.

Para la implementación de Python, consulte:

1.4. Máquinas de vectores de soporte

SVM es un algoritmo de clasificación supervisado.

SVM es un algoritmo para clasificar datos. SMO es un buen y rápido ejemplo.