【问题标题】:Cluster Shape and Size集群形状和大小
【发布时间】:2014-09-10 19:07:30
【问题描述】:
我想问一下集群的形状和大小是如何在数学上确定的。例如,我读过 K-means 聚类算法无法找到非凸形的聚类,而它只能成功找到球形或凸形的聚类。此外,它试图找到具有相同大小的集群。这与它的距离相似函数有关吗?如果是,什么样的相似度函数可以很好地找到不同大小的非凸簇形状?如果不是,请告诉我是什么因素影响了簇的形状和大小。
另外,基于概率的相似性函数是否可以很好地找到具有不同大小的非凸簇形状?
请帮我找出答案,非常感谢。
问候,
【问题讨论】:
标签:
database
cluster-analysis
data-mining
【解决方案1】:
算法不“定义”形状或大小。
您引用的大部分内容(“k-means 只能找到球形簇”)只是一个经验法则,而不是数学属性。
从技术上讲,k-means 会将您的数据划分为 Voronoi 单元。因此很容易看出 k-means 找不到哪些簇(例如,voronoi 细胞是凸的)。但这几乎是你所拥有的——如果你生成一个基于 Voronoi 单元的数据集,k-means 将无法恢复它。它需要在单元中间有一个质心。
还有一些变体,例如内核 k-means,它可以发现哪些类型的集群远非显而易见。
k-means 必须不能与其他距离一起使用。不要将其视为基于距离,它最小化方差。对于其他距离,使用 k-medoids。 Kernelized k-means 应该是安全的,它将最小化投影内核空间的方差并终止。对于其他距离,k-means 可能无法收敛,因为 mean 只会最小化平方欧几里得(因此您需要替换均值)。
如果你想找到其他簇形状,不要从 k-means 开始。将 k 均值视为最小二乘量化,而不是试图找到特定形状的集群(它不是为相同大小的球形集群“设计”的,但它只关心优化平方和公式) .