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
Antwort
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).
"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. –
Guter Punkt. In der Post korrigiert. – kitchenette
- 1. Grundlegendes Verständnis des Adaboost-Algorithmus
- 2. AdaBoost ML-Algorithmus Python-Implementierung
- 3. AdaBoost Eingang und Ausgang?
- 4. Entscheidung Bäume/Stümpfe mit Adaboost
- 5. scikit adaboost feature_importance_
- 6. SVM-Algorithmus ist mein Modell gültig
- 7. Vorteile von definieren über lassen
- 8. Vorteile von x87 über SSE
- 9. Vorteile von Tesla über GeForce
- 10. Unterschied zwischen B-Trees und 2-3-4 Trees
- 11. Vorteile von strncmp über strcmp?
- 12. Clojure finger trees und flexvec
- 13. Erstellen von Binary Search Trees
- 14. Sind AVL Trees Evil?
- 15. Vorteile der Verwendung von URLField über TextField?
- 16. Vorteile von bedingtem Präprozessor über bedingte Anweisungen
- 17. Vorteile oder Verwendung von XML über MySQL und umgekehrt?
- 18. Java Expression Trees
- 19. Vorteile der Verwendung von cql über Sparsamkeit
- 20. Vorteile von Java JDK über JRE
- 21. Vorteile der Subtypisierung über Typklassen
- 22. Manugistics/Avyx Forest und Trees Planungsdienstprogramme
- 23. Multilabel AdaBoost für MATLAB
- 24. Vorteile und Nachteile von DotNetNuke?
- 25. Verwenden von adaboost wihin R Caret-Paket
- 26. visualisieren Hyperebenen-Gleichung von SVM
- 27. Die Vorteile und Vorteile eines Alleskönner-Programmierers?
- 28. Unit Testing Expression Trees
- 29. Trainingskomplexität von Linear SVM
- 30. Vorteile von Java Cloning
Warum ist dies als Java markiert? –
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