Sie können den gleichen Ansatz wie in Support Vector Machines verwenden. SVMs sind ursprünglich binäre Klassifikatoren, mehrere Ansätze wurden für die Behandlung von Daten mit mehreren Klassen vorgeschlagen:
Eins gegen alle : Konstruiere einen binären Klassifikator pro Klasse und trainiere mit Instanzen in dieser Klasse als positive und mit allen anderen Instanzen als negative Fälle (zB: 1-vs- nicht1, 2-vs-nicht2, 3-vs-nicht3). Schließlich verwenden Sie die spätere Wahrscheinlichkeit jedes Klassifikators, um die Klasse vorherzusagen.
eins gegen eins : Konstruiere mehrere binäre Klassifikatoren für jedes Klassenpaar (zB: 1-vs-2, 1-vs-3, 2-vs-3,. .) indem einfach über die Instanzen beider Klassen trainiert wird. Dann können Sie die einzelnen Ergebnisse mit einer Mehrheitsabstimmung kombinieren.
Fehlerkorrektur von Ausgangscodes : Basierend auf der Theorie der Fehlerkorrektur (Hamming-Code und so), beruht die Codierung auf dem Ausgang mehrerer binärer Klassifizierer, wobei einige Redundanz verwendet wird, um die Genauigkeit zu erhöhen / p>
Beachten Sie, dass dies eine generische Methode ist und auf jeden binären Klassifikator angewendet werden kann.
Sonst können Sie nach einer spezifischen Implementierung von Adaboost mit mehreren Klassen suchen, von der ich sicher bin, dass es viele da draußen gibt. Eine schnelle Suche enthüllte diese: Multiclass GentleAdaboosting
Sie können Adaboost.M2 verwenden, es ist ein Multiclass-Adaboost, Sie können eine Implementierung in der Balu-Toolbox finden hier Der Befehl ist Bcl_adaboost diese Toolbox hat andere nützliche Dinge, denken Sie nur daran zu verweisen . Hoffe es hilft.
Theoretisch gesehen ist das einzige korrekte Mehrklassenboosting das in eine Theorie der Multiclass-Boosting
Tags und Links matlab machine-learning classification adaboost