Ich habe Schwierigkeiten, Random Forest in Python mit Scikit learn zu verwenden. Mein Problem ist, dass ich es für die Textklassifizierung verwende (in 3 Klassen - positiv / negativ / neutral) und die Features, die ich extrahiere, sind hauptsächlich Wörter / Unigramme, also muss ich diese in numerische Features konvertieren. Ich habe einen Weg gefunden, es mit DictVectorizer
s fit_transform
:
Mein Problem ist, dass die fit_transform
-Methode an dem Zugdatensatz arbeitet, der ungefähr 8000 Instanzen enthält, aber wenn ich versuche, meinen Testsatz auch in numerische Features zu konvertieren, was ungefähr 80000 Instanzen ist, bekomme ich einen Speicherfehler das sagend:
Was könnte das möglicherweise verursachen und gibt es einen Workaround? Vielen Dank!
Sie dürfen fit_transform
nicht für Ihre Testdaten verwenden, sondern nur transform
. Andernfalls erhalten Sie eine andere Vektorisierung als beim Training.
Für das Speicherproblem empfehle ich TfIdfVectorizer
, das zahlreiche Möglichkeiten hat, die Dimensionalität zu reduzieren (durch Entfernen seltener Unigramme etc.).
AKTUALISIEREN
Wenn das einzige Problem darin besteht, test -Daten anzupassen, teilen Sie es einfach in kleine Teile auf. Anstelle von etwas wie
%Vor%Sie können
tun %Vor%und notiere Ergebnisse / Statistiken und analysiere sie danach.
insbesondere
%Vor%Tags und Links machine-learning classification scikit-learn text-classification random-forest