实际上,关于持久性存在很多问题,但是我已经使用picklejoblib.dumps尝试了很多。但是当我用它来保存我的随机森林时,我得到了:

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')

最佳答案

正如Scikits-Learn RandomForrest trained on 64bit python wont open on 32bit python所建议的,这是由于使用不同的32/64位版本的python进行保存/加载而引起的。

关于python - 如何在scikit-learn中保存一个随机森林?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27595982/

10-09 16:12