Ich habe einen Datensatz mit ungefähr 2.000 binären Variablen / 200.000 Zeilen und versuche, eine einzelne binär abhängige Variable vorherzusagen. Mein Hauptziel in dieser Phase ist nicht die Genauigkeit der Vorhersage, sondern die Identifizierung, welche dieser Variablen wichtige Prädiktoren sind. Ich möchte die Anzahl der Variablen in meinem endgültigen Modell auf ungefähr 100 reduzieren.
Gibt es einen relativ schnellen Weg, um die wichtigsten Variablen zu erhalten? randomForest scheint lange zu dauern.
Ich muss nicht alle 200.000 Beobachtungen verwenden, daher ist eine Stichprobe eine Option auf dem Tisch.
Antworten:
Sie können mit einem einfachen univariaten Filter beginnen und mithilfe der Kreuzvalidierung entscheiden, welche Variablen beibehalten werden sollen. Die
sbf
Funktion imcaret
Paket für R ist wirklich nützlich. Weitere Informationen finden Sie hier ab Seite 19.quelle
Dies klingt nach einem geeigneten Problem für Lasso und Freunde, die schrumpfen und Variablen auswählen. Die Elemente des statistischen Lernens beschreiben Lasso und elastisches Netz für die Regression und, was für dieses Problem relevanter ist, die logistische Regression.
Die Autoren des Buches haben eine effiziente Implementierung von Lasso und elastischem Netz als R-Paket namens glmnet verfügbar gemacht . Ich habe dieses Paket zuvor für die binäre Datenanalyse mit Datenmatrizen von ungefähr 250.000 Zeilen verwendet, obwohl etwas weniger Spalten, aber tatsächlich Regressionen aller Spalten gegen alle anderen Spalten ausgeführt werden. Wenn die Datenmatrix auch spärlich ist, kann die Implementierung dies ebenfalls nutzen, und ich glaube, dass die Methode tatsächlich für den vollständigen OP-Datensatz funktionieren kann. Hier einige Kommentare zu Lasso:
Für Python gibt es eine Implementierung in Scikit-Learn von Methoden wie Lasso und elastischem Netz.
quelle
glmnet
in R). Eine weitere Option ist Thresholding the Lasso, die ebenfalls recht einfach zu implementieren ist. Siehe Abschnitt 2.9 von springer.com/gp/book/9783642201912 .Sie können für jede Variable einen logistischen Regressions- / Chi-Quadrat-Assoziationstest durchführen und nur diejenigen beibehalten, deren p-Wert unter einem bestimmten Wert liegt, z. B. .2.
quelle