Ich habe versucht, den RF-Klassifikator auf einem Datensatz von ~ 50.000 Einträgen mit 20 oder so Etiketten zu betreiben, was meiner Meinung nach in Ordnung sein sollte, aber ich stolpere immer über die folgenden, wenn ich versuche, zu passen ...
%Vor%Der Datensatz wurde über den TfidfVectorizer und dann TruncatedSVD mit n = 100 zur Reduzierung der Dimensionalität übergeben. RandomForestClassifier wird mit n_jobs = 1 und n_estimators = 10 ausgeführt, um zu versuchen, den minimalen Punkt zu finden, an dem es funktioniert. Das System läuft mit 4 GB RAM und RF hat in der Vergangenheit auf einem ähnlichen Datensatz mit viel höheren Schätzern usw. gearbeitet. Scikit-learn läuft mit der aktuellen Version 0.14.1.
Irgendwelche Tipps?
Danke
Segfaults sind immer Fehler. Wenn ein malloc
innerhalb von RandomForest
fehlschlägt, dann sollte es gefangen werden, und es ist meine beste Vermutung, dass dies das ist, was dir passiert. Wie ein Kommentator bereits gesagt hat, sollten Sie dies dem RandomForest Bug Tracker melden. Aber die malloc
ist wahrscheinlich fehlgeschlagen, weil der Speicher nicht ausreicht. Verringern Sie also Ihre Dimensionalität, reduzieren Sie die Größe des Trainingsdatensatzes, erhöhen Sie den Arbeitsspeicher oder führen Sie ein System mit mehr Arbeitsspeicher aus.
Versuchen Sie, die 'psutil' Bibliothek zu verwenden (Link: Ссылка ). Dank dieser Bibliothek können Sie die Menge des verfügbaren Speichers Ihres Systems mit der folgenden Funktion überwachen:
%Vor%Dies wird Ihnen helfen zu erkennen, ob Ihr System nicht genügend Speicher hat oder ob es sich um ein Problem Ihres Codes handelt.
Tags und Links python scikit-learn random-forest