scikit学习SVM,如何保存/加载支持向量?

yml*_*liu 15 python machine-learning

使用python scikit svm,在运行clf.fit(X,Y)之后,你得到你的支持向量.在实例化svm.SVC对象时,我可以直接加载这些支持向量(将它们作为参数传递)吗?这意味着我每次都不需要运行fit()方法来做预测

小智 19

来自scikit手册:http://scikit-learn.org/stable/modules/model_persistence.html

1.2.4模型持久性可以使用Python的内置持久性模型(即pickle)在scikit中保存模型.

>>> 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(kernel=’rbf’, C=1.0, probability=False, degree=3, coef0=0.0, eps=0.001,
cache_size=100.0, shrinking=True, gamma=0.00666666666667)
>>> import pickle
>>> s = pickle.dumps(clf)
>>> clf2 = pickle.loads(s)
>>> clf2.predict(X[0])
array([ 0.])
>>> y[0]
0
Run Code Online (Sandbox Code Playgroud)

在scikit的特定情况下,使用joblib替换pickle可能更有趣,这对大数据更有效,但只能在磁盘上而不是字符串:

>>> from sklearn.externals import joblib
>>> joblib.dump(clf, ’filename.pkl’)
Run Code Online (Sandbox Code Playgroud)

  • 链接断开。改用它:http://scikit-learn.org/stable/modules/model_persistence.html (2认同)