2016-04-10 12 views
0

Ich bin neu in SVM und ich habe nach einem SVM gesucht. Von allen, die ich gesehen habe, ist der Trainingsetikettenvektor im Grunde um 1 Vektor von 1 und -1. Ich verstehe nicht, warum das so ist. Ich war unter der Annahme, dass jede Zeile des Trainingsvektors eine eindeutige Nummer sein sollte, die ihre jeweilige trainierte Instanz kennzeichnet.Wird die SVM-Klassifizierung nur für die Klassifizierung von Datensätzen mit nur 2 Labels verwendet?

Also nehmen Sie an, ich habe einen Datensatz mit m Etiketten mit n Instanzen und jede Instanz ist ein d Dimensionsvektor. Es scheint komisch, Label-Vektor nur -1 und 1 zu verwenden. Aber ich weiß wirklich nicht, um die m-Etiketten in Hyperebene zu trennen. Kann jemand das erklären?

Antwort

0

SVM ist intern ein binärer Klassifikator. Dies bedeutet, dass es nur zwei Etiketten trennen kann. Somit ist es gut für Probleme geeignet, bei denen die Frage in der Form "Hat der gegebene Vektor die Eigenschaft X?" Ausgedrückt werden kann. und die Antwort ist entweder Ja (+1) oder Nein (-1).

Aber es gibt so viele Probleme im wirklichen Leben, die mehr Etiketten erfordern, was kann man dagegen tun? Um Probleme mit m Etiketten zu lösen, wie zum Beispiel "Welche Art von Tier ist auf dem Bild: Katze, Hund oder Pferd?" Sie erstellen Ensemble von SVMs, die Vote für bestimmte Etiketten. Es gibt viele Möglichkeiten, aber zwei von ihnen sind am beliebtesten:

  • Ein gegen alle Ansatz. Bei m Etiketten erstellen Sie m Modelle, i'th SVM ist trainiert zu erkennen, ob das Objekt die Bezeichnung "i" hat oder nicht, also trainieren Sie es auf der Etikette "i" als +1 und bei allen anderen Proben als -1. Dann, wenn es um die Klassifizierung geht - Sie fragen jede SVM, ob sie die Probe erkennt - wenn es irgendwelche Bindungen gibt - verwenden Sie die SVM-Entscheidungsfunktion (Entfernung zur Hyperebene), um sie zu brechen (die am weitesten entfernte gewinnt)
  • Eins gegen Eins Ansatz. Jetzt erstellen Sie m (m-1)/2 SVMs. Jeder beantwortet die Frage "ist diese Probe mehr i-etikettiert oder j-etikettiert" für jedes Paar (i, j) von Etiketten (und es gibt m (m-1)/2 Wege zum Auswählen von zwei Etiketten unter m Einsen). Also wieder - während der Klassifizierung fragen Sie jede solche SVM, und sie "stimmen", Sie summieren Stimmen und das Etikett mit den meisten Stimmen - gewinnt (wieder im Falle von Verbindungen können Sie Entscheidungsfunktionen verwenden).