2014-12-17 17 views
7

Takılı bir Rasgele Orman Sınıflandırıcıyı kaydetmek ve yüklemek istiyorum ancak bir hata alıyorum.Rasgele Ormanı Kaydetme

forest = RandomForestClassifier(n_estimators = 100, max_features = mf_val) 
forest = forest.fit(L1[0:100], L2[0:100]) 
joblib.dump(forest, 'screening_forest/screening_forest.pkl') 
forest2 = joblib.load('screening_forest/screening_forest.pkl') 

hatadır:

File "C:\Users\mkolarek\Documents\other\TrackerResultAnalysis\ScreeningClassif 
ier\ScreeningClassifier.py", line 67, in <module> 
    forest2 = joblib.load('screening_forest/screening_forest.pkl') 
    File "C:\Python27\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py", 
line 425, in load 
    obj = unpickler.load() 
    File "C:\Python27\lib\pickle.py", line 858, in load 
    dispatch[key](self) 
    File "C:\Python27\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py", 
line 285, in load_build 
    Unpickler.load_build(self) 
    File "C:\Python27\lib\pickle.py", line 1217, in load_build 
    setstate(state) 
    File "_tree.pyx", line 2280, in sklearn.tree._tree.Tree.__setstate__ (sklearn\ 
tree\_tree.c:18350) 
ValueError: Did not recognise loaded array layout 
Press any key to continue . . . 

Ben Orman2 falan başlatmak zorunda mıyım?

with open('screening_forest/screening_forest.pickle', 'wb') as f: 
    cPickle.dump(forest, f) 

with open('screening_forest/screening_forest.pickle', 'rb') as f: 
    forest2 = cPickle.load(f) 

ama joblib çözüm de yararlı olabilir:

+0

Rastgele bir ormanı kurtar! :) – ihadanny

cevap

5

yerine cPickle ile çözdü.

+0

Bunu denedim ve benim durumumdaki makineler arasında çalışmıyor :(turşu ve cPickle ile aynı hatayı aldım – ihadanny