转自http://blog.csdn.net/sherri_du/article/details/52198142
在做模型训练的时候,尤其是在训练集上做交叉验证,通常想要将模型保存下来,然后放到独立的测试集上测试,下面介绍的是python中训练模型的保存和再使用。
scikit-learn已经有了模型持久化的操作,导入joblib即可
from sklearn.externals import joblib
模型保存
>>> os.chdir("workspace/model_save")>>> from sklearn import svm>>> X = [[0, 0], [1, 1]]>>> y = [0, 1]>>> clf = svm.SVC()>>> clf.fit(X, y) >>> clf.fit(train_X,train_y)>>> joblib.dump(clf, "train_model.m")
通过joblib的dump可以将模型保存到本地,clf是训练的分类器
模型从本地调回
>>> clf = joblib.load("train_model.m")
通过joblib的load方法,加载保存的模型。
然后就可以在测试集上测试了
clf.predit(test_X,test_y)
///
转自https://www.cnblogs.com/zichun-zeng/p/4761602.html
使用python的机器学习包sklearn的时候,如果训练集是固定的,我们往往想要将一次训练的模型结果保存起来,以便下一次使用,这样能够避免每次运行时都要重新训练模型时的麻烦。
在python里面,有一个joblib可以实现将模型保存,并将保存后的模型取出用于不同的测试集:
1 from sklearn import svm 2 from sklearn.externals import joblib 3 4 #训练模型 5 clf = svc = svm.SVC(kernel='linear') 6 rf=clf.fit(array(trainMat), array(listClasses)) 7 8 #保存模型 9 joblib.dump(rf,'rf.model') 10 11 #加载模型 12 RF=joblib.load('rf.model') 13 14 #应用模型进行预测 15 result=RF.predict(thsDoc)
需要注意的是,这里执行joblib.dump()之后,有可能还会生成若干个以rf.model_XX.npy为命名格式的文件,这有可能是用于保存模型中的系数等的二进制文件。其具体生成的文件的个数还会随调用到的分类器的不同,以及分类器中迭代次数的参数的不同而变,有时候会生成几个,有时候会生成几百个。