使用机器学习必然会面临保存训练模型,和加载训练好的模型的场景。sdklearn的joblib可以满足这个需求。
流程:
1)训练模型
2)保存模型到本地
3)从本地加载训练好的模型来使用
4)预测
代码:
import pickle
from sklearn.externals import joblib
from sklearn.svm import SVC
from sklearn import datasets
svm = SVC()
iris = datasets.load_iris()
X = iris.data
y = iris.target
svm.fit(X,y)
print(svm.predict(X[0:1]))
file_path_name = 'svm.m'
joblib.dump(svm, file_path_name)
new_svm = joblib.load(file_path_name)
print(new_svm.predict(X[0:1]))
这里有几个问题需要注意。第一,版本问题,我在使用时,都是相同的版本,还没有验证过使用不同的版本训练保存,另外的版本加载。第二,模型是使用python训练的,线上如果使用的话,考虑到性能问题,这个方案不推荐。第三,dump时,支持加密模式。默认不加密,这时打开模型文件可以看看内容。:-D