Quels types de problèmes d'apprentissage conviennent aux machines à support vectoriel?

16

Quelles sont les caractéristiques ou les propriétés qui indiquent qu'un certain problème d'apprentissage peut être résolu à l'aide de machines à vecteurs de support?

En d'autres termes, qu'est-ce qui, lorsque vous voyez un problème d'apprentissage, vous fait dire "oh je devrais certainement utiliser des SVM pour cela" plutôt que des réseaux de neurones ou des arbres de décision ou autre chose?

Ragnar
la source
Suppression de la supervised learningbalise, car les SVM peuvent également être utilisés dans des problèmes d'apprentissage non supervisés .
Dawny33
Peut expliquer comment svm peut être utilisé pour un problème non supervisé et quel package l'implémente?
GeorgeOfTheRF
@ML_Pro Veuillez passer par le lien que j'ai inclus dans mon commentaire.
Dawny33
3
@ Dawny33, l'application des SVM à l'apprentissage non supervisé est l'exception et non la règle. Les SVM sont une méthode d'apprentissage supervisé.
AN6U5
1
@ AN6U5 Merci d'avoir informé :) Par exception, tu veux dire que c'est juste un tweak et pas la convention, non?
Dawny33

Réponses:

7

SVM peut être utilisé pour la classification (distinction entre plusieurs groupes ou classes) et la régression (obtention d'un modèle mathématique pour prédire quelque chose). Ils peuvent être appliqués à des problèmes linéaires et non linéaires.

Jusqu'en 2006, ils étaient le meilleur algorithme à usage général pour l'apprentissage automatique. J'essayais de trouver un article qui comparait de nombreuses implémentations des algorithmes les plus connus: svm, réseaux neuronaux, arbres, etc. Je ne pouvais pas le trouver désolé (vous devrez me croire, mauvaise chose). Dans l'article, l'algorithme qui a obtenu les meilleures performances était svm, avec la bibliothèque libsvm.

En 2006, Hinton a mis au point un apprentissage profond et des réseaux neuronaux. Il a amélioré l'état actuel de la technique d'au moins 30%, ce qui est un énorme progrès. Cependant, l'apprentissage en profondeur n'obtient de bonnes performances que pour d'énormes ensembles d'entraînement. Si vous avez un petit ensemble d'entraînement, je vous suggère d'utiliser svm.

De plus, vous pouvez trouver ici une infographie utile sur le moment d'utiliser différents algorithmes d'apprentissage automatique par scikit-learn. Cependant, à ma connaissance, il n'y a pas d'accord entre la communauté scientifique quant à savoir si un problème a des fonctionnalités X, Y et Z, alors il est préférable d'utiliser svm. Je suggère d'essayer différentes méthodes. N'oubliez pas non plus que svm ou les réseaux neuronaux ne sont qu'une méthode pour calculer un modèle. Il est très important également les fonctionnalités que vous utilisez.

hoaphumanoïde
la source
1
@HoapHumaboid Je connais SVC et SVR et nous pouvons utiliser des noyaux pour appliquer des SVM aux PNL et je connais des articles qui comparent les SVM avec d'autres algorithmes d'apprentissage ... Je me posais des questions sur les caractéristiques d'un problème d'apprentissage potentiel qui ferait il est évident qu'il devrait être abordé avec un SVM. En d'autres termes, qu'est-ce que lorsque vous voyez un problème d'apprentissage vous fait aller "oh je devrais certainement utiliser des SVM pour cela" plutôt que des NN ou des arbres de décision ou toute autre chose
Ragnar
@Ragnar s'il vous plaît voir ma réponse modifiée
hoaphumanoid
2

Supposons que nous sommes dans un cadre de classification.

Pour l' svmingénierie des fonctionnalités est la pierre angulaire:

  • les ensembles doivent être linéairement séparables. Sinon, les données doivent être transformées (par exemple en utilisant Kernels). Cela n'est pas fait par l'algo lui-même et pourrait faire exploser le nombre de fonctionnalités.
  • Je dirais que les svmperformances souffrent car nous augmentons le nombre de dimensions plus rapidement que d'autres méthodologies (ensemble d'arbres). Cela est dû au problème d'optimisation contraint qui soutient l' svmart. Parfois, la réduction des fonctionnalités est possible, parfois non et c'est à ce moment-là que nous ne pouvons pas vraiment ouvrir la voie à une utilisation efficace desvm
  • svmaura probablement du mal avec un ensemble de données où le nombre d'entités est beaucoup plus grand que le nombre d'observations. Ceci, encore une fois, peut être compris en examinant le problème d'optimisation contraint.
  • les variables catégorielles ne sont pas prises en charge par l' svmalgorithme.
pincopallino
la source