我的计算机视觉讲义中提到,如果我们知道聚类的标准差,k-means聚类算法的性能可以得到改善。这是怎么回事呢?
我的想法是,我们可以先通过基于直方图的分割来利用标准差得到更好的初始估计。你觉得呢?感谢任何帮助!
回答:
你的讲师可能想到的是Veenman等人2002年的论文。基本思路是,你设定每个聚类允许的最大方差。你从与数据点数量相同的聚类开始,然后通过以下方式“演化”聚类:
- 如果合并后的聚类的方差低于阈值,则合并邻近的聚类
- 如果一个聚类的方差高于阈值,则隔离“远”的元素
- 或者如果在邻近聚类之间移动一些元素可以减少平方误差和,则进行移动
(这种演化作为一种全局优化程序,可以避免k-means中初始聚类均值分配的不良后果)
总之,如果你知道方差,你就知道聚类应该有多大变化,因此更容易例如检测异常值(通常应该放入单独的聚类中)。