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で変形します。
最終更新:2013年12月18日 02:01