我正在尝试使用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来减少功能的数量,还是需要对文本文档进行预处理?
答案 0 :(得分:1)
您需要以与转换列车相同的方式转换test_documents
。
X_test = vectorizer.transform(test_documents)
predicted_cluster = model.predict(X_test)
请务必仅在测试文档上调用transform
,并使用与vectorizer
或fit()
列车文档相同的fit_transform()
对象。