我正在使用Python中的scikit learn构建决策树。我已经在特定数据集上训练了模型,现在我想保存这个决策树,以便以后可以使用它(在新数据集上)。任何人都知道如何做到这一点。
答案 0 :(得分:4)
目前还没有可行的方法。虽然酸洗确实有效,但它还不够好,因为你的腌制数据无法保证在以后版本的scikit-learn中得到适当的修补。
引自:http://scikit-learn.org/stable/modules/model_persistence.html#security-maintainability-limitations
保存在一个scikit-learn版本中的模型可能无法加载到另一个版本中 版本
答案 1 :(得分:3)
取自this tutorial的模型持久性部分:
可以使用Python的内置持久性模型(即pickle)在scikit中保存模型:
>>> from sklearn import svm
>>> from sklearn import datasets
>>> clf = svm.SVC()
>>> iris = datasets.load_iris()
>>> X, y = iris.data, iris.target
>>> clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
kernel='rbf', max_iter=-1, probability=False, random_state=None,
shrinking=True, tol=0.001, verbose=False)
>>> import pickle
>>> s = pickle.dumps(clf)
>>> clf2 = pickle.loads(s)
>>> clf2.predict(X[0])
array([0])
>>> y[0]
0
答案 2 :(得分:0)
我使用joblib
如下:
>>> from joblib import dump, load
>>> dump(clf, 'filename.joblib')
>>> clf = load('filename.joblib')
但是,需要考虑these的安全性和可维护性限制。