Welche Lernprobleme eignen sich für Support Vector Machines?

16

Welche Merkmale oder Eigenschaften weisen darauf hin, dass ein bestimmtes Lernproblem mithilfe von Support-Vektor-Maschinen gelöst werden kann?

Mit anderen Worten, was ist es, was Sie dazu bringt, wenn Sie ein Lernproblem sehen: "Oh, ich sollte auf jeden Fall SVMs für dieses" "verwenden, anstatt neuronale Netze oder Entscheidungsbäume oder irgendetwas anderes?

Ragnar
quelle
Das supervised learningTag wurde entfernt, da SVMs auch bei unbeaufsichtigten Lernproblemen verwendet werden können .
Dawny33
Kann erklären, wie svm für unbeaufsichtigte Probleme verwendet werden kann und welches Paket es implementiert?
GeorgeOfTheRF
@ML_Pro Bitte gehen Sie den Link durch, den ich in meinen Kommentar aufgenommen habe.
Dawny33
3
@ Dawny33, die Anwendung von SVMs auf unbeaufsichtigtes Lernen ist die Ausnahme und nicht die Regel. SVMs sind eine überwachte Lernmethode.
AN6U5
1
@ AN6U5 Danke für die Information :) exceptionDu meinst damit, dass es nur ein Tweak ist und nicht die Konvention, oder?
Dawny33

Antworten:

7

SVM kann zur Klassifizierung (Unterscheidung zwischen mehreren Gruppen oder Klassen) und zur Regression (Erhalt eines mathematischen Modells zur Vorhersage von Dingen) verwendet werden. Sie können sowohl auf lineare als auch auf nichtlineare Probleme angewendet werden.

Bis 2006 waren sie der beste Allzweckalgorithmus für maschinelles Lernen. Ich habe versucht, ein Dokument zu finden, in dem viele Implementierungen der bekanntesten Algorithmen verglichen wurden: SVM, neuronale Netze, Bäume usw. Es hat mir nicht leid getan (Sie müssen mir glauben, was Schlimmes). In der Veröffentlichung war svm mit der Bibliothek libsvm der Algorithmus, der die beste Leistung erzielte.

2006 entwickelte Hinton Deep Learning und Neuronale Netze. Er hat den aktuellen Stand der Technik um mindestens 30% verbessert, was eine enorme Verbesserung darstellt. Deep Learning bietet jedoch nur für große Trainingssets eine gute Leistung. Wenn Sie einen kleinen Trainingssatz haben, würde ich vorschlagen, svm zu verwenden.

Außerdem finden Sie hier eine nützliche Infografik darüber, wann verschiedene Algorithmen für maschinelles Lernen von scikit-learn verwendet werden sollen. Nach meinem besten Wissen gibt es jedoch keine Einigkeit in der wissenschaftlichen Gemeinschaft darüber, ob ein Problem über X-, Y- und Z-Funktionen verfügt. Dann ist es besser, svm zu verwenden. Ich würde vorschlagen, verschiedene Methoden auszuprobieren. Bitte vergessen Sie auch nicht, dass svm oder neuronale Netze nur eine Methode zur Berechnung eines Modells sind. Es ist sehr wichtig, welche Funktionen Sie verwenden.

Hoaphumanoid
quelle
1
@HoapHumaboid Ich kenne SVC und SVR und weiß, dass wir mit Kernels SVMs auf NLPs anwenden können. Außerdem sind mir Artikel bekannt, in denen SVMs mit anderen Lernalgorithmen verglichen werden. Ich habe mich über die Eigenschaften eines möglichen Lernproblems gewundert es ist offensichtlich, dass es mit einem SVM angegangen werden sollte. Mit anderen Worten, was ist es, dass, wenn Sie ein Lernproblem sehen, Sie dazu bringt, zu gehen: "Oh, ich sollte definitiv SVMs für diese verwenden, anstatt NNs oder Entscheidungsbäume oder irgendetwas anderes
Ragnar
@Ragnar siehe meine bearbeitete Antwort
Hoaphumanoid
2

Nehmen wir an, wir befinden uns in einer Klassifizierungseinstellung.

Für das svmFeature Engineering ist Eckpfeiler:

  • Die Sets müssen linear trennbar sein. Andernfalls müssen die Daten transformiert werden (z. B. mithilfe von Kernels). Dies wird vom Algo selbst nicht durchgeführt und kann die Anzahl der Features verringern.
  • Ich würde sagen, dass die svmLeistung leidet, wenn wir die Anzahl der Dimensionen schneller erhöhen als mit anderen Methoden (Baumensemble). Dies ist auf das eingeschränkte Optimierungsproblem zurückzuführen, das svms unterstützt. Manchmal ist eine Funktionsreduzierung möglich, manchmal nicht. In diesem Fall können wir den Weg für eine effektive Nutzung von nicht wirklich ebnensvm
  • svmwird wahrscheinlich mit einem Datensatz zu kämpfen haben, bei dem die Anzahl der Merkmale viel größer ist als die Anzahl der Beobachtungen. Dies kann wiederum verstanden werden, indem das eingeschränkte Optimierungsproblem betrachtet wird.
  • Kategoriale Variablen werden vom svmAlgorithmus nicht standardmäßig verarbeitet .
pincopallino
quelle