¿Qué tipos de problemas de aprendizaje son adecuados para las máquinas de vectores de soporte?

16

¿Cuáles son las características o propiedades que indican que se puede abordar un determinado problema de aprendizaje utilizando máquinas de vectores de soporte?

En otras palabras, ¿qué es lo que, cuando ves un problema de aprendizaje, te hace decir "oh, definitivamente debería usar SVM para esto" en lugar de redes neuronales o árboles de decisión o cualquier otra cosa?

Ragnar
fuente
Se eliminó la supervised learningetiqueta, ya que los SVM también se pueden usar en problemas de aprendizaje sin supervisión .
Dawny33
¿Puede explicar cómo se puede usar svm para un problema no supervisado y qué paquete lo implementa?
GeorgeOfTheRF
@ML_Pro Por favor, vaya a través del enlace que he incluido en mi comentario.
Dawny33
3
@ Dawny33, la aplicación de SVM para el aprendizaje no supervisado es la excepción y no la regla. Los SVM son un método de aprendizaje supervisado.
AN6U5
1
@ AN6U5 Gracias por informar :) Por exception, quieres decir que es solo un ajuste y no la convención, ¿verdad?
Dawny33

Respuestas:

7

SVM puede usarse para clasificación (distinguir entre varios grupos o clases) y regresión (obtener un modelo matemático para predecir algo). Se pueden aplicar a problemas tanto lineales como no lineales.

Hasta 2006 eran el mejor algoritmo de propósito general para el aprendizaje automático. Estaba tratando de encontrar un documento que comparara muchas implementaciones de los algoritmos más conocidos: svm, redes neuronales, árboles, etc. No pude encontrarlo, lo siento (tendrás que creerme, algo malo). En el documento, el algoritmo que obtuvo el mejor rendimiento fue svm, con la biblioteca libsvm.

En 2006, a Hinton se le ocurrió el aprendizaje profundo y las redes neuronales. Mejoró el estado actual de la técnica en al menos un 30%, lo cual es un gran avance. Sin embargo, el aprendizaje profundo solo obtiene un buen rendimiento para grandes conjuntos de entrenamiento. Si tiene un pequeño conjunto de entrenamiento, sugeriría usar svm.

Además, puede encontrar aquí una infografía útil sobre cuándo utilizar diferentes algoritmos de aprendizaje automático de scikit-learn. Sin embargo, que yo sepa, no existe un acuerdo entre la comunidad científica sobre si un problema tiene características X, Y y Z, entonces es mejor usar svm. Sugeriría probar diferentes métodos. Además, no olvide que svm o redes neuronales es solo un método para calcular un modelo. También es muy importante las características que utiliza.

hoaphumanoid
fuente
1
@HoapHumaboid Sé sobre SVC y SVR y que podemos usar Kernels para aplicar SVM a NLP y estoy al tanto de los documentos que comparan SVM con otros algoritmos de aprendizaje ... Me preguntaba sobre las características de un posible problema de aprendizaje que haría Es evidente que debe abordarse con un SVM. En otras palabras, ¿qué es lo que cuando ves un problema de aprendizaje te hace decir "oh, definitivamente debería usar SVM para esto" en lugar de NN o árboles de decisión o cualquier otra cosa
Ragnar
@Ragnar, por favor vea mi respuesta editada
hoaphumanoid el
2

Asumamos que estamos en una configuración de clasificación.

Para la svmingeniería de características es la piedra angular:

  • los conjuntos tienen que ser linealmente separables. De lo contrario, los datos deben ser transformados (por ejemplo, usando Kernels). Esto no lo hace el propio algoritmo y puede eliminar la cantidad de funciones.
  • Diría que el svmrendimiento sufre a medida que aumentamos el número de dimensiones más rápido que otras metodologías (conjunto de árbol). Esto se debe al problema de optimización restringida que respalda svms. A veces la reducción de características es factible, a veces no, y esto es cuando realmente no podemos allanar el camino para un uso efectivo desvm
  • svmEs probable que tenga dificultades con un conjunto de datos donde el número de características es mucho mayor que el número de observaciones. Esto, nuevamente, puede entenderse observando el problema de optimización restringido.
  • El svmalgoritmo no maneja las variables categóricas fuera de la caja .
pincopallino
fuente