在 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
对象。
我正在尝试使用 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
对象。