sklearn之svm-葡萄酒质量预测(11)
Posted 麦好
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sklearn之svm-葡萄酒质量预测(11)相关的知识,希望对你有一定的参考价值。
本系列以sklearn的svm算法为例,对葡萄酒质量预测,也可换用其它方法,比如随机森林,因为sklearn的机器学习算法调用形式基本差不多,可以自行举一反三。
现在,我们来把训练的模型保存,然后,需要的时候,直接将数据送入模型 ,无需再训练,先来看模型 保存与读入(模型持久化)
模型的持久性
在训练了一个scikit-learn模型之后,最好有一种方法来保存模型以供将来使用,而无需重新培训。下一节将给出一个示例,说明如何使用pickle持久化模型。在处理pickle序列化时,我们还将回顾一些安全性和可维护性问题。
>>> from sklearn import svm
>>> from sklearn import datasets
>>> clf = svm.SVC(gamma='scale')
>>> 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='scale', 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
在特定的scikitlearn中,使用joblib替换pickle 可能会更好。(dump & joblib.load),这对于内部携带大型numpy数组的对象更有效,这通常是适合的scikit-learn估计器的情况,但只能pickle到磁盘,而不是字符串:
>>> from sklearn.externals import joblib
>>> joblib.dump(clf, 'filename.joblib')
稍后,您可以使用以下工具返回pickle模型(可能是在另一个Python进程中):
>>> clf = joblib.load('filename.joblib')
joblib.dump和 joblib.load函数也接受类似文件对象,而不是文件名。
由于模型内部表示在两个不同的体系结构上可能不同,所以不支持在一个体系结构上转储模型,并将其加载到另一个体系结构上。
以上是关于sklearn之svm-葡萄酒质量预测(11)的主要内容,如果未能解决你的问题,请参考以下文章