Alternativen zu Klassifizierungsbäumen mit besserer Prognoseleistung (z. B. Lebenslauf)?

23

Ich suche nach einer Alternative zu Klassifikationsbäumen, die eine bessere Vorhersagekraft bietet.

Die Daten, mit denen ich mich befasse, haben Faktoren sowohl für die erklärenden als auch für die erklärenden Variablen.

Ich erinnere mich, dass ich in diesem Zusammenhang auf zufällige Wälder und neuronale Netze gestoßen bin, obwohl ich sie noch nie zuvor ausprobiert habe. Gibt es noch einen guten Kandidaten für eine solche Modellierungsaufgabe (in R, offensichtlich)?

Tal Galili
quelle
5
Kümmern Sie sich nicht um neuronale Netze, dies ist eine veraltete Technologie.
1
@mbq stehst du noch zu dieser aussage?
Rhombidodecahedron
@rhombidodecahedron Sicher, spielen Sie mit NNs aus dem Jahr 2010 und Sie werden zustimmen. Außerdem bezweifle ich, dass ein DL-Modell etwas mit Daten von (vermutlich) so geringer Größe auf einen Tisch bringen würde.

Antworten:

25

Ich denke, es lohnt sich, Random Forests ( randomForest ) auszuprobieren . Einige Referenzen wurden als Antwort auf verwandte Fragen bereitgestellt: Merkmalsauswahl für das „endgültige“ Modell bei der Durchführung einer Kreuzvalidierung beim maschinellen Lernen ; Können CART-Modelle robust gemacht werden? . Durch Boosting / Bagging sind sie stabiler als ein einzelner WARENKORB, von dem bekannt ist, dass er sehr empfindlich gegen kleine Störungen ist. Einige Autoren argumentierten, dass es SVM- oder Gradienten-Boosting-Maschinen nicht nur bestraft, sondern auch bestrafte (siehe z. B. Cutler et al., 2009). Ich denke, sie übertreffen mit Sicherheit die NNs.

Boulesteix und Strobl bieten einen schönen Überblick über verschiedene Klassifikatoren in Bezug auf die Auswahl optimaler Klassifikatoren und die negative Verzerrung bei der Fehlerratenschätzung: eine empirische Studie zur hochdimensionalen Vorhersage (BMC MRM 2009 9: 85). Ich habe auf dem IV EAM-Treffen von einer weiteren guten Studie gehört , die in Statistics in Medicine besprochen werden sollte.

João Maroco , Dina Silva, Manuela Guerreiro und Alexandre de Mendonça. Übertreffen zufällige Wälder neuronale Netze, unterstützen Vektormaschinen und Diskriminanzanalyse-Klassifikatoren? Eine Fallstudie zur Entwicklung der Demenz bei älteren Patienten mit kognitiven Beschwerden

Ich mag auch das Caret- Paket: Es ist gut dokumentiert und ermöglicht den Vergleich der Vorhersagegenauigkeit verschiedener Klassifikatoren in demselben Datensatz. Es kümmert sich um die Verwaltung von Trainings- / Testmustern, Rechengenauigkeit usw. in wenigen benutzerfreundlichen Funktionen.

Das glmnet- Paket von Friedman und Kollegen implementiert bestraftes GLM (siehe die Übersicht im Journal of Statistical Software ), sodass Sie in einem bekannten Modellierungsframework bleiben.

Ansonsten können Sie auch nach Assoziationsregeln- basierten Klassifikatoren suchen (in der CRAN-Task-Ansicht für maschinelles Lernen oder in den Top 10-Algorithmen in Data Mining finden Sie eine sanfte Einführung in einige von ihnen).

Ich möchte einen weiteren interessanten Ansatz erwähnen, den ich in R (eigentlich Matlab-Code) erneut implementieren möchte, nämlich die Diskriminanz-Korrespondenz-Analyse von Hervé Abdi. Obwohl es ursprünglich für Studien mit kleinen Stichproben und vielen erklärenden Variablen entwickelt wurde (schließlich in kohärenten Blöcken zusammengefasst), scheint es klassische DA-Techniken effizient mit Datenreduktionstechniken zu kombinieren.

Verweise

  1. Cutler, A., Cutler, DR, und Stevens, JR (2009). Baumbasierte Methoden in der hochdimensionalen Datenanalyse in der Krebsforschung , Li, X. und Xu, R. (Hrsg.), S. 83-101, Springer.
  2. Saeys, Y., Inza, I. und Larrañaga, P. (2007). Ein Überblick über Techniken zur Merkmalsauswahl in der Bioinformatik . Bioinformatics, 23 (19): 2507 & ndash; 2517.
chl
quelle
2
+1 Gute Antwort. Ich stimme auch der Caret-Empfehlung zu.
Shane,
12

Es ist wichtig zu bedenken, dass es keinen Algorithmus gibt, der immer besser ist als andere. Laut Wolpert und Macready "sind zwei beliebige Algorithmen äquivalent, wenn ihre Leistung über alle möglichen Probleme gemittelt wird." (Siehe Wikipedia für Details.)

Für eine bestimmte Anwendung ist die "beste" im Allgemeinen diejenige, die in Bezug auf die getroffenen Annahmen, die Arten der Daten, die sie verarbeiten kann, die Hypothesen, die sie darstellen kann, und so weiter am ehesten mit Ihrer Anwendung übereinstimmt.

Es ist daher eine gute Idee, Ihre Daten nach folgenden Kriterien zu charakterisieren:

  • Habe ich einen sehr großen oder einen bescheidenen Datensatz?
  • Ist die Dimensionalität hoch?
  • Sind Variablen numerisch (stetig / diskret) oder symbolisch oder gemischt und / oder können sie bei Bedarf transformiert werden?
  • Sind Variablen wahrscheinlich weitgehend unabhängig oder ziemlich abhängig?
  • Gibt es wahrscheinlich redundante, verrauschte oder irrelevante Variablen?
  • Möchte ich das erzeugte Modell untersuchen und versuchen, einen Sinn daraus zu machen?

Durch die Beantwortung dieser Fragen können Sie einige Algorithmen eliminieren und andere als potenziell relevant identifizieren. Dann erhalten Sie möglicherweise eine kleine Auswahl von Kandidatenmethoden, die Sie intelligent ausgewählt haben und als wahrscheinlich nützlich erweisen.

Es tut mir leid, Ihnen keine einfache Antwort zu geben, aber ich hoffe, das hilft trotzdem!

Irish Buffer
quelle
2
+1 Liebe das Zitat. ("Zwei beliebige Algorithmen sind äquivalent, wenn ihre Leistung über alle möglichen Probleme gemittelt wird.")
Assad Ebrahim
8

Für die Klassifizierung mehrerer Klassen sind Support-Vektor-Maschinen ebenfalls eine gute Wahl. Normalerweise verwende ich dafür das R-Kernlab-Paket.

Weitere Informationen finden Sie im folgenden JSS-Dokument: http://www.jstatsoft.org/v15/i09/

Shane
quelle
@Tal Hier ist ein fairer (oder meiner Meinung nach) Überblick über SVM vs. RFs: Ein umfassender Vergleich von zufälligen Wäldern und Support-Vektor-Maschinen für die Microarray-basierte Krebsklassifizierung , j.mp/ab7U8V . Ich ziehe kernlabes auch vor e1071.
chl
2
@chl Ich mag dieses Papier aus der Sicht des SVM-Lernens nicht. Eine Wiederholung eines stochastischen Algorithmus (RF) ist nur ein Trödel. Anhang 2 zeigt auch, wie schlecht es sein kann, den SVM-Workflow auf RF anzuwenden. Ich stimme jedoch zu, dass SVM fast immer so eingestellt werden kann, dass es HF übertrifft, und zwar aufgrund des Kernel-Tricks (den reines HF nicht hat, obwohl dies nicht bedeutet, dass es im Allgemeinen nicht möglich ist), aber mit einem exponentiell wachsenden Optimierungsaufwand.
@mbq In der Tat, das ist ein guter Punkt.
Chl
3

Wie bereits erwähnt, handelt es sich bei Random Forests um ein natürliches "Upgrade", und heutzutage ist SVM im Allgemeinen die empfohlene Technik.

Ich möchte hinzufügen, dass ein häufiger Wechsel zu SVM zu sehr enttäuschenden Ergebnissen führt. Während Techniken wie zufällige Bäume fast trivial sind, ist SVM etwas kniffliger.

Ich fand dieses Dokument von unschätzbarem Wert, als ich SVM zum ersten Mal verwendete (Ein praktischer Leitfaden zur Unterstützung der Vektorklassifizierung) http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

In R können Sie das e1071-Paket für SVM verwenden, das mit der De-facto-Standardbibliothek libSVM (mindestens in freier Software!) Verknüpft ist.

Dr. G
quelle
2
Kernlab verwendet auch libsvm für die Optimierung, so dass es in diesem Sinne keinen großen Unterschied gibt (obwohl es viel flexibler ist).
Shane