2017-04-22 20 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