需求:
一直写的代码都是从加载数据,模型训练,模型预测,模型评估走出来的,但是实际业务线上咱们肯定不能每次都来训练模型,而是应该将训练好的模型保存下来
,如果有新数据直接套用模型就行了吧?现在问题就是怎么在实际业务中保存模型,不至于每次都来训练,在预测。
解决方案:
机器学习-训练模型的保存与恢复(sklearn)
python /模型持久化 /模型保存 /joblib /模型恢复
在做模型训练的时候,尤其是在训练集上做交叉验证,通常想要将模型保存下来,
然后放到独立的测试集上测试,下面介绍的是Python的sklearn中训练模型的保存和再使用。
scikit-learn已经有了模型持久化的操作,导入joblib即可
from sklearn.externals import joblib
模型保存
>>> os.chdir("D://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_X为特征集