Für einen kürzlich durchgeführten Kaggle-Wettbewerb habe ich (manuell) 10 zusätzliche Funktionen für mein Trainingsset definiert, die dann zum Trainieren eines zufälligen Waldklassifikators verwendet werden. Ich habe mich entschieden, PCA für das Dataset mit den neuen Funktionen auszuführen, um zu sehen, wie sie miteinander verglichen werden. Ich fand heraus, dass ~ 98% der Varianz von der ersten Komponente (dem ersten Eigenvektor) getragen wurden. Anschließend habe ich den Klassifikator mehrmals geschult und dabei jeweils ein Merkmal hinzugefügt. Anschließend habe ich die Qualität der Klassifizierung anhand von Kreuzvalidierung und RMS-Fehler verglichen. Ich stellte fest, dass sich die Klassifizierungen mit jedem zusätzlichen Merkmal verbesserten und dass das Endergebnis (mit allen 10 neuen Merkmalen) weitaus besser war als der erste Durchlauf mit (sagen wir) 2 Merkmalen.
Warum hat sich die Qualität der Klassifikationen so stark verbessert, da PCA behauptet, dass ~ 98% der Varianz in der ersten Komponente meines Datensatzes enthalten sind?
Würde dies für andere Klassifikatoren gelten? HF-Skalierung über mehrere Kerne hinweg, daher ist das Trainieren viel schneller als bei (sagen wir) SVM.
Was wäre, wenn ich das Dataset in den Bereich "PCA" transformiert und den Klassifizierer für den transformierten Bereich ausgeführt hätte? Wie würden sich meine Ergebnisse ändern?
quelle
Antworten:
Bei der prädiktiven Modellierung versuchen Sie, die Variation der Antwort und nicht die Variation der Features zu erklären. Es gibt keinen Grund zu der Annahme, dass ein möglichst großer Teil der Feature-Variation in ein einzelnes neues Feature einen großen Teil der Vorhersagekraft der Features insgesamt erfasst.
Dies wird häufig als Unterschied zwischen der Regression der Hauptkomponenten und nicht der Regression der kleinsten Teilquadrate erklärt.
quelle
Boruta
. Ich fand sie auch nicht nützlich. Ich finde es unvernünftig zu glauben, dass ein bestimmtes Merkmal keine Wirkung hat. Ich kann mir vorstellen, dass es nützlich sein könnte, bestimmte Funktionen gegenüber anderen zu betonen, aber der Basis-Zufallsforst-Algorithmus macht das schon ziemlich gut. Wenn Sie so tief in der Modellierung stecken sind und mehr Leistung wünschen, würde ich vorschlagen, andere Algorithmen, einige davon als verstärkte Bäume, mit Ihrem randomForest zu stapeln.Die erste Hauptkomponente ist eine lineare Kombination aller Ihrer Funktionen. Die Tatsache, dass fast die gesamte Variabilität erklärt wird, bedeutet lediglich, dass die meisten Koeffizienten der Variablen in der ersten Hauptkomponente signifikant sind.
Jetzt sind die Klassifizierungsbäume, die Sie generieren, auch ein bisschen anders. Sie teilen fortlaufende Variablen binär auf, um die zu klassifizierenden Kategorien optimal voneinander zu trennen. Dies ist nicht dasselbe wie das Finden orthogonaler linearer Kombinationen kontinuierlicher Variablen, die die Richtung der größten Varianz ergeben. Tatsächlich haben wir kürzlich ein Papier über den Lebenslauf diskutiert, in dem PCA für die Clusteranalyse verwendet wurde, und die Autoren haben festgestellt, dass es Situationen gibt, in denen die beste Trennung nicht in den ersten, sondern in den letzten Hauptkomponenten zu finden ist.
quelle