私はこのようなGridSearchCVを使用しています:sklearn GridSearchCV:分類レポートを取得するには?
corpus = load_files('corpus')
with open('stopwords.txt', 'r') as f:
stop_words = [y for x in f.read().split('\n') for y in (x, x.title())]
x = corpus.data
y = corpus.target
pipeline = Pipeline([
('vec', CountVectorizer(stop_words=stop_words)),
('classifier', MultinomialNB())])
parameters = {'vec__ngram_range': [(1, 1), (1, 2)],
'classifier__alpha': [1e-2, 1e-3],
'classifier__fit_prior': [True, False]}
gs_clf = GridSearchCV(pipeline, parameters, n_jobs=-1, cv=5, scoring="f1", verbose=10)
gs_clf = gs_clf.fit(x, y)
joblib.dump(gs_clf.best_estimator_, 'MultinomialNB.pkl', compress=1)
を次に、別のファイルには、(ないコーパスからの)新しい文書を分類するために、私はこれを行う:
classifier = joblib.load(filepath) # path to .pkl file
result = classifier.predict(tokenlist)
私の質問は:どこに行いますclassification_report
に必要な値が得られますか?
他の多くの例では、人々がコーパスをトラッキングセットとテストセットに分割しているのがわかります。 しかし、私はGridSearchCV
をkfold-cross-validationで使用しているので、これを行う必要はありません。 GridSearchCV
からこれらの値を取得するにはどうすればよいですか?
問題だけではなく、 'gs_clf.fit(X、Yを行います) 'return' None'? – BallpointBen
@BallpointBenなぜでしょうか? xとyにはデータが含まれています – user3813234