Scikit lernen - fit_transform auf dem Test-Set

10

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 :

zu machen %Vor%

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:

%Vor%

Was könnte das möglicherweise verursachen und gibt es einen Workaround? Vielen Dank!

    
Crista23 24.02.2014, 20:13
quelle

1 Antwort

10

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%     
lejlot 25.02.2014, 06:50
quelle