【问题标题】:ValueError while predicting a document in a scikit-learn k-means cluster在 scikit-learn k-means 集群中预测文档时出现 ValueError
【发布时间】:2017-09-19 05:24:52
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    您需要像变换 train 一样变换 test_documents

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

    确保您只在测试文档上调用 transform,并使用与火车文档上的 fit()fit_transform() 相同的 vectorizer 对象。

    【讨论】:

    • 或者更确切地说 X_test = vectorizer.transform(test_documents)
    • @pgrenholm 是的。已更正。谢谢。即使我明确表示不要那样做,但似乎我自己也犯了这个错误
    • 是的。它对我有用。非常感谢。我收到一个错误,例如:功能数量不正确,但下面的帖子可以解决这个问题。 stackoverflow.com/a/26943563/1269131
    • @SiMemon 好的。我认为它会被理解,因为我在我的代码中使用了相同的名称。但我应该明确提到使用同一个对象。
    猜你喜欢
    • 1970-01-01
    • 2012-06-29
    • 2013-10-12
    • 2017-03-11
    • 2014-09-20
    • 1970-01-01
    • 2018-01-09
    • 2012-11-06
    • 2013-07-21
    相关资源
    最近更新 更多