在scikit-learn k-means集群中预测文档时的ValueError

时间:2017-04-22 05:49:21

标签: python scikit-learn cluster-analysis k-means pca

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

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 个答案:

答案 0 :(得分:1)

您需要以与转换列车相同的方式转换test_documents

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

请务必仅在测试文档上调用transform,并使用与vectorizerfit()列车文档相同的fit_transform()对象。