2014-12-22 2 views
4

На самом деле есть много вопросов о сохранении, но я много пробовал, используя pickle или joblib.dumps. но когда я использую его для сохранения своего случайного леса, я получил это:Как сохранить случайный лес в scikit-learn?

ValueError: ("Buffer dtype mismatch, expected 'SIZE_t' but got 'long'", <type 'sklearn.tree._tree.ClassificationCriterion'>, (1, array([10]))) 

Может ли кто-нибудь сказать мне, почему?

некоторый код для обзора

forest = RandomForestClassifier() 
forest.fit(data[:n_samples], target[:n_samples ]) 
import cPickle 
with open('rf.pkl', 'wb') as f: 
    cPickle.dump(forest, f) 
with open('rf.pkl', 'rb') as f: 
    forest = cPickle.load(f) 

или

from sklearn.externals import joblib 
joblib.dump(forest,'rf.pkl') 

from sklearn.externals import joblib 
forest = joblib.load('rf.pkl') 
+0

отправьте пример код. – elyase

+0

Оба решения дают такую ​​же ошибку? – xgdgsc

+1

Вы используете один и тот же 32-битный питон для сохранения/загрузки? http://stackoverflow.com/questions/21033038/scikits-learn-randomforrest-trained-on-64bit-python-wont-open-on-32bit-python – xgdgsc

ответ