python sklearn模型的保存与使用


转自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为命名格式的文件,这有可能是用于保存模型中的系数等的二进制文件。其具体生成的文件的个数还会随调用到的分类器的不同,以及分类器中迭代次数的参数的不同而变,有时候会生成几个,有时候会生成几百个。




你可能感兴趣的:(python)