scikit-learnのインスタンス保存

pickleなどに保存するときに、どれを保存すればよいか混乱したのでメモ。
ここではsvmを例として示します。

from sklearn import svm
from sklearn.feature_extraction import DictVectorizer

vec = DictVectorizer() # DictVectorを準備
feats_vec = vec.fit_transform(feats) #feature(dictが入ったlist)を入れる。

lin_clf = svm.LinearSVC() #SVMを準備
lin_clf.fit(feats_vec, labels) #feature_vectorとラベルを入れてfit(train)させる。 

#ここでtrainした分類器およびfeatureを保存する場合、
pickle.dump(lin_clf, open(filename + '.pkl', 'w'))
pickle.dump(vec, open(filename + '.vec', 'w')) # feats_vecではなくvecである点に注意。

DictVectorizerに関して、
training features(dictionaryの羅列)はfit_transformで、各test feature(一つのdictionary)はtransformで変形します。

















タグ:

python scikit-learn ML
最終更新:2013年12月18日 02:01