使用sklearn训练完模型之后,只有将模型持久化到硬盘上,才能方便下次直接使用。
第一种方式:使用pickle
>>> 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,
decision_function_shape='ovr', degree=3, gamma='auto', 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:1])
array([0])
>>> y[0]
0
第二种方式:使用sklearn.external.joblib
>>> from sklearn.externals import joblib
>>> joblib.dump(clf, 'filename.pkl')
...
加载时
>>> clf = joblib.load('filename.pkl')
预测模型标记语言:PMML
PMML利用XML描述和存储数据挖掘模型,是一个已经被W3C所接受的标准。
它以纯文本形式存储模型数据,因此跨平台、跨语言性能很好。当模型部署时,往往需要使用此种语言。
PMML是一种标准,许多机器学习库都支持将模型导出为PMML。
决策树导出为图像数据
sklearn.tree包中可以将决策树导出为dot类型的文件,dot类型的文件是一种描述图的纯文本文件,它可以使用文本编辑器打开查看,里面是一堆定义结点和边的命令。
from sklearn import tree, datasets
data = datasets.load_iris()
x = data['data']
y = data['target']
clf = tree.DecisionTreeClassifier()
clf.fit(x, y)
tree.export_graphviz(clf, out_file="haha.dot")