2012-05-16 15 views
9

Ich arbeite an der binären Klassifizierung von Daten und ich möchte die Vor- und Nachteile der Verwendung von Support Vector Machine über Entscheidungsbäume und adaptive Boosting-Algorithmen kennen.Vorteile von SVM über Decion Trees und AdaBoost Algorithmus

+1

Warum ist dies als Java markiert? –

+0

Wie viele Datenpunkte und Funktionen haben Sie? laut, spärlich? Ich würde vorschlagen, mit dem schnellen linearen SVM [scikit-learn SGDClassifier] (http://scikit-learn.org/stable/modules/sgd.html) zu beginnen. – denis

Antwort

14

Etwas, was Sie vielleicht tun möchten, ist weka, das ist ein nettes Paket, das Sie verwenden können, um Ihre Daten einstecken und dann eine Reihe von verschiedenen Machine Learning Klassifikatoren ausprobieren, um zu sehen, wie jeder auf Ihrem bestimmten Satz funktioniert. Es ist ein guter Weg für Menschen, die maschinelles Lernen betreiben.

Wenn Sie nichts über Ihre speziellen Daten oder das Klassifizierungsproblem wissen, das Sie zu lösen versuchen, kann ich nicht wirklich über das hinausgehen, was ich über die einzelnen Methoden weiß. Das heißt, hier ist ein Brain Dump und Links zu einigen nützlichen maschinellen Lernfolien.

Adaptive Boosting verwendet ein Komitee von schwachen Basisklassifikatoren, um über die Klassenzuweisung eines Stichprobenpunktes abzustimmen. Die Basisklassifikatoren können Entscheidungsstümpfe, Entscheidungsbäume, SVMs usw. sein. Es erfordert einen iterativen Ansatz. Bei jeder Iteration - wenn das Komitee einverstanden ist und die Klassenzuordnung für ein bestimmtes Sample korrigiert, wird es nach unten gewichtet (weniger wichtig, um bei der nächsten Iteration richtig zu kommen), und wenn das Komitee nicht einverstanden ist, dann wird es hoch gewichtet (wichtiger für die nächste Iteration). Adaboost ist bekannt für seine gute Verallgemeinerung (nicht überanpassend).

SVMs sind ein nützlicher erster Versuch. Zusätzlich können Sie verschiedene Kernel mit SVMs verwenden und erhalten nicht nur lineare Entscheidungsgrenzen, sondern mehr funky-förmige. Und wenn Sie L1-Regularisierung darauf setzen (Slack-Variablen), dann können Sie nicht nur eine Überanpassung verhindern, sondern Sie können auch Daten klassifizieren, die nicht separierbar sind.

Decision trees sind wegen ihrer Interpretierbarkeit durch fast jedermann nützlich. Sie sind einfach zu bedienen. Die Verwendung von Bäumen bedeutet auch, dass Sie sich auch ein Bild davon machen können, wie wichtig ein bestimmtes Merkmal für die Herstellung dieses Baumes ist. Etwas, das Sie vielleicht überprüfen möchten, ist additive Bäume (wie MART).

+1

"wenn das Komitee sich über die Klassenzuweisung für eine bestimmte Probe einig ist, wird es nach unten gewichtet". Das ist nicht genau richtig. Wenn das Komitee es richtig wählt (im Vergleich zum Grundwahrheitszeichen), ist es abwärts gewichtet. Umgekehrt für das Up-Weighting. –

+0

Guter Punkt. In der Post korrigiert. – kitchenette