从 Kmeans 中找到每个集群的分布

Posted

技术标签:

【中文标题】从 Kmeans 中找到每个集群的分布【英文标题】:Finding the spread of each cluster from Kmeans 【发布时间】:2011-01-20 04:57:22 【问题描述】:

我正在尝试检测输入向量与给定聚类中心的拟合程度。我可以很容易地找到最佳匹配(到输入向量的欧几里得距离最小的中心是最好的),但是,我现在需要研究匹配的好坏。

为此,我需要找到构成质心的向量的散布(标准差?),然后查看我的输入向量到中心的距离是否小于散布。如果它超出了传播范围,我应该可以说我没有适合它的集群(假设最好的不能很好地拟合输入向量)。

我不确定如何找到每个集群的分布。我有所有的中心向量,所有的训练向量都标有它们最近的集群,我只是不能完全理解我需要做什么才能得到传播。

我希望这很清楚?如果没有,我会尝试改写它! TIA 伊恩

【问题讨论】:

【参考方案1】:

使用距离函数并计算从您的中心点到每个标记点的距离,然后计算出这些距离的平均值。那应该给你标准偏差。

【讨论】:

【参考方案2】:

如果您切换到使用不同的算法,例如高斯混合,您会得到 spread(例如,标准偏差)作为模型的一部分(聚类结果)。

http://home.deib.polimi.it/matteucc/Clustering/tutorial_html/mixture.html

http://en.wikipedia.org/wiki/Mixture_model

【讨论】:

以上是关于从 Kmeans 中找到每个集群的分布的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spark MLlib KMeans 从数据中预测集群

获取集群的第一个元素和集群 ids kmeans spark

PySpark ML:获取 KMeans 集群统计信息

查找每个 kmeans 集群的热门单词

kmeans集群中节点和质心之间的距离?

如何使用 Matplotlib 从多特征 kmeans 模型中绘制集群和中心?