新手到Python和sklearn在这里。我在以下代码上收到我不明白的"类型错误"。谁能帮忙?
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是用于训练模型的基本数据。 Y.shape 为 (676, 26879),而 dev_labels.shape 为 (676,)
错误消息在 GridSearchCV 行上为"Type_error"。它说: 类型错误: 未调整大小对象的 len()
什么对象没有大小?
您只需
将scoring
参数更改为scoring='f1'
即可。这将为您完成工作。
此外,您不正确地使用了f1_score
方法。它的第一个参数是训练数据。相反,您正在向其传递不正确的转换后的特征向量。