scikit-learn 的 k-means:预测方法的真正作用是啥?

Posted

技术标签:

【中文标题】scikit-learn 的 k-means:预测方法的真正作用是啥?【英文标题】:scikit-learn's k-means: what does the predict method really do?scikit-learn 的 k-means:预测方法的真正作用是什么? 【发布时间】:2014-09-20 15:35:52 【问题描述】:

当我使用 scikit-learn 的 k-means 实现时,我通常只调用 fit() 方法,这足以获取集群中心和标签。 predict() 方法用于计算标签,甚至fit_predict() 方法也可以方便地使用,但是如果我只能使用fit() 来获取标签,那么predict() 方法的目的是什么?

【问题讨论】:

不会对看不见的数据使用predict 方法吗? 有道理。因为它是 k-means,所以我并没有那样想。 我不确定我是否仍然理解。我有 n 个观察值并使用 kmeans 拟合它们。我有 n+1 观察,所以我可以简单地将其添加到我的数据集中并使用 fit() 拟合所有 n+1。或者,我们可以使用 fit() 并在第 n+1 次观察时使用 predict()。那么我是否正确理解在 predict() 中我们不会重新计算集群的质心? 【参考方案1】:

predict,正如@EdChum 建议的那样,可用于未见数据。这(更重要的是,transform 方法)在将 k-means 用于半监督学习中的特征提取时很有用:您对大量样本进行聚类,然后使用最近的质心/到质心的距离作为后续监督学习的特征问题。使用结果进行预测时,您会得到 k-means 未看到的样本。

【讨论】:

你能告诉我在应用 k-means 后最推荐的创建训练集的方法是什么吗?我使用 dictVectorizer + tfIDFTransformer 获得 X 然后执行 km.fit(X),我想对新文档使用 predict 但我需要为其创建一个稀疏矩阵,实现这一目标的最有效方法是什么?跨度>

以上是关于scikit-learn 的 k-means:预测方法的真正作用是啥?的主要内容,如果未能解决你的问题,请参考以下文章

用scikit-learn学习K-Means聚类

K-means 仅使用带有 scikit-learn 的特定数据框列

在 Python 2.7 的 scikit-learn 之外是不是有任何 K-means++ 实现?

转载: scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法

如何手动设置 K-means 聚类中心?

Python、Scikit-learn、K-means:参数 n_init 实际上是做啥的? [复制]