Die fünf besten Klassifikatoren, die zuerst ausprobiert werden sollten


25

Neben offensichtlichen Klassifizierereigenschaften wie

  • Rechenaufwand,
  • erwartete Datentypen von Features / Labels und
  • Eignung für bestimmte Größen und Abmessungen von Datensätzen,

Was sind die fünf besten (oder 10, 20?) Klassifikatoren, um zuerst einen neuen Datensatz auszuprobieren, über den man noch nicht viel weiß (z. B. Semantik und Korrelation einzelner Merkmale)? Normalerweise probiere ich Naive Bayes, Nearest Neighbor, Decision Tree und SVM aus - obwohl ich keinen anderen Grund für diese Auswahl habe, als sie zu kennen und meistens zu verstehen, wie sie funktionieren.

Ich denke, man sollte Klassifikatoren wählen, die die wichtigsten allgemeinen Klassifikationsansätze abdecken . Welche Auswahl würden Sie nach diesem Kriterium oder aus einem anderen Grund empfehlen?


UPDATE: Eine alternative Formulierung für diese Frage könnte lauten: "Welche allgemeinen Ansätze zur Klassifizierung gibt es und welche spezifischen Methoden decken die wichtigsten / beliebtesten / vielversprechendsten ab?"


Ich denke, dies ist ein Duplikat von ( stats.stackexchange.com/questions/3458/… ). Der einzige zusätzliche Wert der Frage könnte hier "Kriterien für die Auswahl von Klassifikatoren" sein (was die Frage zu einer sehr allgemeinen Frage machen würde). Wenn es sich um ein Duplikat handelt, stimmen Sie für close, andernfalls stimmen Sie für cw;)
steffen

@steffen: Ihre Frage, auf die verwiesen wird, ist hilfreich, aber ich denke, es ist kein Duplikat. In der Tat ist meine Frage eher allgemein. Ich suche keine Lösung für ein bestimmtes Problem, sondern aus allgemeinen Gründen, warum ich welche Lernenden verwenden soll. Ich aktualisiere meine Frage entsprechend.
Oben Sonne

Antworten:


21

Zufälliger Wald

Schnelle, robuste, gute Genauigkeit, in den meisten Fällen nichts zu tunen, erfordert keine Normalisierung, ist immun gegen Kollinearität, erzeugt eine recht gute Fehlerannäherung und ein nützliches Wichtigkeitsranking als Nebeneffekt des Trainings, trivial parallel, prognostiziert im Handumdrehen.

Nachteile: langsamer als triviale Methoden wie kNN oder NB, funktioniert am besten bei gleichen Klassen, ist ungenauer als SVM für Probleme, die dringend einen Kernel-Trick erfordern, ist eine harte Blackbox, macht keinen Kaffee.


1
@mbq (+1) In Bezug auf das Klassenungleichgewicht können wir uns beim Absacken immer noch auf geschichtete Stichproben verlassen.
chl

3
@mbq, macht nicht Kaffee? Das ist genau dort ein Deal-Breaker.
Kardinal

Danke für den Hinweis auf Random Forests . Aber würden Sie nur sie versuchen? Was ist, wenn Sie mit den Ergebnissen nicht zufrieden sind? Welchen Klassifikator würdest du sonst versuchen? Oder was würden Sie antworten, wenn jemand fragt: "Warum haben Sie keine anderen Methoden ausprobiert?"
Oben Sonne

@Oben Nun, ich habe verstanden, dass Sie eine Art Pool mit einem Klassifikator pro Antwort erstellen.

@mbq: Nicht wirklich, aber es stellt sich heraus, dass es sich um einen solchen Pool handelt. Wahrscheinlich habe ich mich in der Frage nicht klar genug ausgedrückt. Eigentlich wollte ich wissen, welche Menge von Klassifikatoren man zuerst versuchen sollte, um verschiedene allgemeine Klassifizierungsmethoden (mit unterschiedlichen Stärken und Schwächen) abzudecken. Ich frage mich immer, ob ich nicht mehr Klassifikatoren probieren soll. Zu wissen, dass diejenigen, die ich bereits ausprobiert habe, die typischsten / vielversprechendsten Ansätze darstellen, würde hier helfen. Aber dafür muss ich wissen, für welche Menge von Klassifikatoren dies zutrifft. (Ich bin weit davon entfernt, ein Statistik-Experte zu sein. Lassen Sie mich wissen, ob meine Gedanken hier etwas verdreht sind.)
Oben Sonne

7

Gaußscher Prozessklassifikator (ohne Verwendung der Laplace-Näherung), vorzugsweise mit Marginalisierung statt Optimierung der Hyperparameter. Warum?

  1. weil sie eine probabilistische Einteilung geben
  2. Sie können eine Kernelfunktion verwenden, mit der Sie nicht-vektorielle Daten direkt bearbeiten und / oder Expertenwissen einbinden können
  3. Sie beschäftigen sich mit der Unsicherheit, das Modell richtig anzupassen, und Sie können diese Unsicherheit auf den Entscheidungsprozess übertragen
  4. im Allgemeinen sehr gute Vorhersageleistung.

Nachteile

  1. schleppend
  2. benötigt viel Speicher
  3. unpraktisch für große Probleme.

Die erste Wahl wäre jedoch eine regulierte logistische Regression oder eine Ridge-Regression [ohne Feature-Auswahl] - bei den meisten Problemen funktionieren sehr einfache Algorithmen recht gut und sind schwieriger zu verwechseln (in der Praxis sind die Leistungsunterschiede zwischen den Algorithmen geringer als die Leistungsunterschiede) zwischen dem Fahrer, der sie fährt).


1

Wenn Sie sich einem neuen Datensatz nähern, sollten Sie alleine anfangen, das ganze Problem zu beobachten. Zunächst erhalten Sie eine Verteilung für kategoriale Merkmale sowie Mittel- und Standardabweichungen für jedes kontinuierliche Merkmal. Dann:

  • Features mit mehr als X% fehlenden Werten löschen;
  • Löschen Sie kategoriale Merkmale, wenn ein bestimmter Wert mehr als 90-95% der relativen Häufigkeit erreicht.
  • Löschen Sie fortlaufende Merkmale mit CV = std / mean <0.1;
  • Holen Sie sich ein Parameter-Ranking, zB ANOVA für stetig und Chi-Quadrat für kategorial;
  • Holen Sie sich eine signifikante Teilmenge von Funktionen;

Dann teile ich die Klassifikationstechniken normalerweise in 2 Sätze auf: White-Box- und Black-Box-Technik. Wenn Sie wissen möchten, wie der Klassifikator funktioniert, sollten Sie im ersten Satz auswählen, z. B. Entscheidungsbäume oder regelbasierte Klassifikatoren.

Wenn Sie neue Datensätze klassifizieren müssen, ohne ein Modell zu erstellen, sollten Sie einen Blick auf eifrige Lernende werfen, z. B. KNN.

Danach halte ich es für besser, eine Schwelle zwischen Genauigkeit und Geschwindigkeit zu haben: Neuronale Netze sind etwas langsamer als SVM.

Dies ist meine Top-5-Klassifikationstechnik:

  1. Entscheidungsbaum;
  2. Regelbasierte Klassifikatoren;
  3. SMO (SVM);
  4. Naive Bayes;
  5. Neuronale Netze.

4
-1 Absolut fehlerhafter Workflow für große p kleine n, FS-Überanpassung ist garantiert.

1
Ist kNN nicht eher ein fauler Lernender als ein eifriger Lernender (da Sie eigentlich nichts tun, bis Sie wirklich müssen, wann ein Klassifizierungsmuster auftaucht)? Jede Vorverarbeitung, die Sie vor dem Anwenden des Klassifikators ausführen, hat wahrscheinlich einen größeren Einfluss auf die Leistung als der Unterschied zwischen den Klassifikatoren. Die Featureauswahl ist besonders schwierig (führt leicht zu einer Überanpassung), und Methoden wie die SVM mit Regularisierung sind in der Regel ohne Featureauswahl besser. Ich würde neuronale Netze auf keinen Fall empfehlen, viel zu viele potenzielle Fallstricke.
Dikran Marsupial
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.