python scikit svmを使用して、clf.fit(X、Y)を実行した後、サポートベクターを取得します。svm.SVCオブジェクトをインスタンス化するときに、これらのサポートベクターを直接ロード(パラメーターとして渡す)できますか?つまり、予測を行うために毎回fit()メソッドを実行する必要はありません。
質問する
19103 次
2 に答える
22
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
scikitの特定のケースでは、ビッグデータではより効率的ですが、文字列ではなくディスクにのみピクルスできる、joblibのピクルスの代わりを使用する方が興味深い場合があります。
>>> from sklearn.externals import joblib
>>> joblib.dump(clf, ’filename.pkl’)
于 2013-08-26T13:52:35.663 に答える
3
後で使用するためにモデルを保存できます。以前にフィッティングして保存したモデルが存在する場合にモデルを使用するために、以下のコードを記述しました。
from sklearn.externals import joblib
svm_linear_estimator = svm.SVC(kernel='linear', probability=False, C=1)
try:
estimator = joblib.load("/my_models/%s.pkl"%dataset_name)
print "using trained model"
except:
print "building new model"
estimator.fit(data_train, class_train)
joblib.dump(estimator,"/my_models/%s.pkl"%dataset_name)
于 2013-05-10T13:55:14.137 に答える