2016-04-05 4 views
1

Ich habe einen Zufalls-Forest-Klassifizierer für meinen Datensatz mit 7 Features und etwa 1 Million Zeilen oder Datensätzen eingerichtet.Speicherfehler bei zufälliger Forest Classifier-Vorhersage

Folgendes ist mein Code.

randForestClassifier=RandomForestClassifier(n_estimators=10,max_depth=3) 
randForestClassifier.fit(X_train,y) 
pred=randForestClassifier.predict(featues_test) 

Ich erhalte Speicherfehler, wenn ich Methode meiner classifier.How vorhersagen, um es zu beheben?

Es folgt mein vollständiges Protokoll

randForestClassifier.predict(featues_test) 
Traceback (most recent call last): 

    File "<ipython-input-15-0b7612d6e958>", line 1, in <module> 
    randForestClassifier.predict(featues_test) 

    File "C:\Python27\lib\site-packages\sklearn\ensemble\forest.py", line 462, in predict 
    proba = self.predict_proba(X) 

    File "C:\Python27\lib\site-packages\sklearn\ensemble\forest.py", line 513, in predict_proba 
    for e in self.estimators_) 

    File "C:\Python27\lib\site-packages\sklearn\externals\joblib\parallel.py", line 659, in __call__ 
    self.dispatch(function, args, kwargs) 

    File "C:\Python27\lib\site-packages\sklearn\externals\joblib\parallel.py", line 406, in dispatch 
    job = ImmediateApply(func, args, kwargs) 

    File "C:\Python27\lib\site-packages\sklearn\externals\joblib\parallel.py", line 140, in __init__ 
    self.results = func(*args, **kwargs) 

    File "C:\Python27\lib\site-packages\sklearn\ensemble\forest.py", line 106, in _parallel_helper 
    return getattr(obj, methodname)(*args, **kwargs) 

    File "C:\Python27\lib\site-packages\sklearn\tree\tree.py", line 592, in predict_proba 
    proba = self.tree_.predict(X) 

    File "sklearn/tree/_tree.pyx", line 3207, in sklearn.tree._tree.Tree.predict (sklearn\tree\_tree.c:24468) 

    File "sklearn/tree/_tree.pyx", line 3209, in sklearn.tree._tree.Tree.predict (sklearn\tree\_tree.c:24340) 

MemoryError 

Antwort

0

Ja, Sie bekommen die MemoryError bei randForestClassifier.predict(featues_test), wie sie in der Stack-Trace gezeigt:

File "<ipython-input-15-0b7612d6e958>", line 1, in <module> 
    randForestClassifier.predict(featues_test) 

Die restlichen Zeilen des Stack-Trace zeigt, dass die Probleme kommen von sklearn, in der C-Code: sklearn\tree\_tree.c:24340

+1

ok ...... aber was ist der Ausweg? Es sollte ein Weg sein repariere es. –

+1

Haben Sie versucht, weniger als 1 Million Zeilen zu pushen? Abhängig von der Speichergröße und der Größe einer Zeile können Sie leicht eine hohe Speichergröße erreichen. Wenn eine Zeile 1000 Byte im Speicher ist, erhalten Sie 10 GB Daten im RAM gespeichert. – aluriak

+0

Ich schneide 10000 Zeilen und es funktionierte perfekt ..... aber jetzt was ist mit diesen vollen Daten, diese 1 Million Zeilen? –