2016-07-08 10 views
1

初心者からPythonまで私は理解していない次のコードに "型エラー"が表示されます。誰も助けることができますか?metrics.f1_score - サイズ変更されていないオブジェクトの長さ

vectorizer = CountVectorizer() 
X = vectorizer.fit_transform(train_data) 
Y = vectorizer.transform(dev_data) 

print Y.shape 
print dev_labels.shape 

parameters = {'n_neighbors':[1,300] } 
grid_search = GridSearchCV(KNeighborsClassifier(), parameters, scoring=metrics.f1_score(Y, dev_labels)) 
grid_search.fit(X, train_labels) 
print "the score is", grid_search.score(Y, dev_labels) 
print "The best value is achieved when k = ", grid_search.best_params_ 

train_data、dev_dataは、モデルのトレーニングに使用される基本データです。 dev.labels.shapeが(676、)

の場合、Y.shapeは(676,26887)です。エラーメッセージはGridSearchCV行の "Type_error"です。それは言います:TypeError:unsizeされたオブジェクトのlen()

どのようなオブジェクトがサイズされていますか?

+0

私は単に 'scoring = 'f1''を与えるべきだと思います。それはうまくいくはずです。 'f1_score'メソッドも間違って使用しています。最初のパラメータはトレーニングデータです。代わりにあなたはそれが正しいではない変換された特徴ベクトルを渡しています。 –

+0

ありがとうございます。スコアリング= 'f1'修正が働いた。 –

+0

私はこれを答えにします。コミュニティに役立つように、それを受け入れられた回答としてマークすることができます。 –

答えて

0

scoringのパラメータをscoring='f1'に変更するだけです。これはあなたのために仕事をします。

また、f1_scoreメソッドを誤って使用しています。最初のパラメータはトレーニングデータです。代わりにあなたはそれが正しいではない変換された特徴ベクトルを渡しています。

関連する問題