Ich versuche, die Feature-Auswahl mit Boruta-Paket in R. Das Problem ist, dass mein Feature-Set ist zu groß (70518 Features) und daher das Datenframe ist zu groß (2 GB) und kann nicht sofort mit dem Boruta-Paket bearbeitet werden. Ich frage mich, ob ich den Datenrahmen in mehrere Sätze aufteilen kann, von denen jeder eine kleinere Menge an Funktionen enthält? Das klingt ein bisschen komisch für mich, da ich nicht sicher bin, ob der Algorithmus die Gewichte richtig identifizieren kann, wenn nicht alle Funktionen vorhanden sind. Wenn nicht, wäre ich sehr dankbar, wenn jemand einen alternativen Weg vorschlagen könnte.Feature Auswahl auf Teilmengen von Feature-Set
Antwort
Ich denke, Ihr bestes in diesem Fall könnte sein, zuerst einige der Merkmale zu versuchen und herauszufiltern, die entweder niedrige Information (z. B. Nullvarianz) oder stark korreliert sind.
Die caret package hat some useful functions to help with this.
Zum Beispiel kann die findCorrelation()
leicht verwendet werden, um redundante Funktionen zu entfernen:
dat <- cor(dat, method='spearman')
dat[is.na(dat)] <- 0
features_to_ignore <- findCorrelation(dat, cutoff=0.75, verbose=FALSE)
dat <- dat[,-features_to_ignore]
Dadurch wird alle Funktionen mit einer Spearman Korrelation von 0,75 oder höher entfernen.
danke, aber das funktioniert nicht mit einem großen Dataset. Wird sich alles aufteilen? – Kate
Intuitiv ist das Teilen der Daten nicht vollständig effektiv. Wenn beispielsweise zwei stark korrelierte Features in verschiedenen Partitionen landen, werden sie nicht von der Analyse ausgeschlossen. Ist das Problem, dass das Dataset zu groß ist, um es im Speicher zu halten? Oder ist es speziell, dass das Boruta-Paket keinen Speicher mehr hat? –
Es ist zu groß, um es im Speicher zu halten. Es tut uns leid, dass es nicht klar ist. – Kate
Ich werde mit der Frage beginnen, warum Sie glauben, dass dies sogar funktionieren kann? In diesem Fall ist nicht nur p >> n
, sondern p >>>>>> n
. Du wirst immer falsche Assoziationen finden. Mehr noch, selbst wenn Sie das tun könnten (sagen Sie, indem Sie eine ausreichend große Maschine in einem Cloud-Computing-Dienst anmieten, was die Methode ist, die ich vorschlagen würde), betrachten Sie eine absurde Menge an Berechnungen, da die Rechenkomplexität von Erstellen eines einzelnen Entscheidungsbaums ist O(n * v log(v))
, wobei n
ist die Anzahl der Datensätze und v
ist die Anzahl für Felder in jedem Datensatz. Der Aufbau eines RF erfordert für jeden Baum so viel.
Anstatt das Problem wie erwähnt zu lösen, sollten Sie es von Grund auf neu überdenken. Was bist du wirklich versuchen, hier zu tun? Kannst du zu den ersten Prinzipien zurückkehren und das überdenken?
- 1. Feature-Auswahl mit Tensorflow
- 2. Feature Auswahl in MATLAB
- 3. Sklearn Feature Auswahl
- 4. Verwendung von Bhattacharyya Entfernung für Feature-Auswahl
- 5. Matlab Feature Auswahl für Regressionsmodelle
- 6. Vorhersage nach Feature-Auswahl python
- 7. Genetischer Algorithmus mit Feature-Auswahl
- 8. Feature-Auswahl in Dokument-Feature-Matrix mit Chi-Quadrat-Test
- 9. Python-Feature-Auswahl in der Pipeline: wie Feature-Namen bestimmen?
- 10. Cross Validation ist Feature Auswahl in Classification
- 11. Wie Feature-Auswahl auf SparseMatrix-Matrix in R
- 12. Multi-Label-Feature-Auswahl mit Sklearn
- 13. Beispiel für SVM Feature Auswahl in R
- 14. Feature-Auswahl in Wrapper-Methode und Informationsfilterung?
- 15. Wert Fehler in Feature-Auswahl Pandas
- 16. typisierte Teilmengen von Aufzählungen
- 17. Mittelwert auf Teilmengen einer Teilmenge
- 18. Schleife über Teilmengen von Datentabelle
- 19. Statistiken über Teilmengen von Daten
- 20. Interaktion auswählen: nur beim Klicken auf Feature
- 21. SKlearn (scikit-learn) multivariate Feature-Auswahl für Regression
- 22. Scikit-Lernen Feature-Auswahl mit SVC basierend auf Perzentil von .coef_ Werte
- 23. Feature-Auswahl in der SVM-Klassifizierung-Eigenartiges Verhalten
- 24. Scikit Lernen Tree-basierte Feature-Auswahl unter Beibehaltung der Spaltennamen?
- 25. Feature Auswahl und schätzen die Dokumente Ähnlichkeit in Text Mining
- 26. Anzahl von verschiedenen Summen von Teilmengen
- 27. Anzahl von verschiedenen Summen von Teilmengen
- 28. Ausführen von Tests auf Feature-Zweigen
- 29. Tägliche Teilmengen der Jahresdaten
- 30. ActiveRecord Berechnungen auf Teilmengen oder Datensätze
Wie viele Datensätze haben Sie? – Ansjovis86
Ich habe 1157 Instanzen und 70518 Funktionen. von denen ich 786 als Trainingssatz und 371 zum Testen verwende – Kate
Sie könnten besser die Hälfte Ihrer Instanzen nehmen und es erneut versuchen. Ich denke du solltest alle Features zusammenhalten. Keith schlägt jedoch bereits das Caret-Paket vor. Es sollte möglich sein, Feature-Auswahl mit der Größe des Datenrahmens zu machen, die Sie haben. Sie könnten ansonsten in Erwägung ziehen, einen univariaten Filter durchzuführen, z. B. Varianzfilterung, um eine Feature-Vorauswahl durchzuführen, bevor Sie die eigentliche Feature-Auswahl vornehmen. Nur um die Dimensionalität zu reduzieren. – Ansjovis86