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

ValueError while predicting a document in a scikit-learn k-means cluster

我正在尝试使用 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来减少特征数量,或者是否需要对文本文档进行预处理?

您需要像变换火车一样变换 test_documents

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

确保只在测试文档上调用 transform 并使用与在训练文档上用于 fit()fit_transform() 的相同 vectorizer 对象。