support-Vektor-Maschinen in matlab
Können Sie uns ein Beispiel der Klassifikation von 4-Klassen verwenden von Support-Vektor-Maschinen (SVM) in matlab so etwas wie:
atribute_1 atribute_2 atribute_3 atribute_4 class
1 2 3 4 0
1 2 3 5 0
0 2 6 4 1
0 3 3 8 1
7 2 6 4 2
9 1 7 10 3
InformationsquelleAutor cMinor | 2011-02-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
MATLAB nicht unterstützt multiclass SVM im moment. Könnten Sie
svmtrain
(2-Klassen) um dies zu erreichen, aber es wäre viel einfacher, zu verwenden eine standard-SVM-Paket.Habe ich verwendet LIBSVM und kann bestätigen, dass es sehr einfach zu bedienen.
Wenn ich ausführen-Modell = svmtrain(Klassen(Zug),Attribute(Zug,:),'-s 0 -t 2'); erhalte ich: ??? Error using ==> svmtrain bei 172 Gruppe muss ein Vektor.
Hast du copy-paste die alle der code, den ich zur Verfügung gestellt? Es funktioniert für mich.
ja,klar, Wiederverkäufer und alle, vielleicht ist dis etwas falsch, sorry.,
In Fall, dass Sie noch auf der Suche für eine Lösung: stackoverflow.com/questions/15619584/...
InformationsquelleAutor Jacob
SVMs wurden ursprünglich für die binäre Klassifikation. Später wurden Sie erweitert zu behandeln multi-Klassen-Probleme. Die Idee ist, zerlegen Sie das problem in viele binäre-Klasse Probleme und dann kombinieren Sie erhalten die Vorhersage.
Einem Ansatz namens einer-gegen-alle, baut so viele binäre Klassifikatoren, da gibt es Klassen, die jeweils ausgebildet zum trennen einer Klasse vom rest. Voraussagen einer neuen Instanz, die wir wählen, der Klassifikator mit der größten Entscheidung, die Funktion Wert.
Anderen Ansatz namens eins-gegen-eins - (was ich glaube, ist verwendet in LibSVM), baut
k(k-1)/2
binäre Klassifikatoren, ausgebildet zum trennen jedes paar von Klassen gegeneinander an und nutzt eine Mehrheit Schema (max-win-Strategie), um zu bestimmen, die Ausgabe-prediction.Gibt es auch andere Ansätze, wie die Verwendung von Error Correcting Output Codes (ECOC) bauen viele etwas redundant binary-Klassifikatoren, und verwenden Sie diese Redundanz zu erhalten robuster Klassifikationen (verwendet die gleiche Idee wie Hamming-codes).
Beispiel (one-against-one):
Hier ist ein Beispiel für die Ausgabe:
ist es richtig, nehmen die durchschnittlichen Genauigkeit von k Falten, wenn ich mich mit k-Falten in cvpartition?
ja, Sie berichten über die Durchschnittliche Genauigkeit über die k-Falten, dann wieder das Modell gelernt, aus den gesamten Trainingsdaten
Aber die Genauigkeit ist unterschiedlich, jedes mal wenn ich den code ausführen, ist dies nicht der Fall ist, wenn ich berechnen Fehler mit der eingebauten Funktion von cvpartition.
Ich denke, das ist, weil die Daten partitioniert ist anders, jedes mal, wenn Sie führen Sie den code. Wenn Sie möchten, um die Ergebnisse reproduzieren, erwägen Sie, ein seed für den Zufallszahlengenerator (siehe
rng
- Funktion)InformationsquelleAutor Amro