2017-04-22 17 views
0

我正在尝试使用scikit-learn在训练好的k-means模型中预测一群测试文档的集群。在scikit-learn k-means集群中预测文档时的ValueError

vectorizer = TfidfVectorizer(stop_words='english') 
X = vectorizer.fit_transform(train_documents) 
k = 10 
model = KMeans(n_clusters=k, init='k-means++', max_iter=100, n_init=1) 
model.fit(X) 

该模型生成没有任何问题与10个集群。但是,当我尝试预测文档列表时,出现错误。

predicted_cluster = model.predict(test_documents) 

错误消息:

ValueError异常:无法将字符串转换为浮动...

我需要使用PCA减少了一些功能,或做我需要做的预处理文本文件?

回答

1

您需要按照火车转换的相同方式转换test_documents

X_test = vectorizer.transform(test_documents) 
predicted_cluster = model.predict(X_test) 

确保只呼吁测试文档transform,并使用其用于fit()fit_transform()列车文档相同vectorizer对象。

+0

或者X_test = vectorizer.transform(test_documents) – pgrenholm

+1

@pgrenholm yes。纠正。谢谢。即使我明确表示不这样做,似乎我自己犯了这个错误 –

+0

是的。它为我工作。非常感谢。我得到了一个错误:不正确的功能数量,但下面的帖子来解决这个问题。 http://stackoverflow.com/a/26943563/1269131 – SiMemon