K-Means算法通常只能收敛于局部最小值,这可能导致“反直观”的错误结果。
因此,为了优化K-Means算法,提出了Bisecting K-Means算法
,也就是二分K-Means算法。
Bisecting K-Means算法 是一种层次聚类方法。
层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别的相似度类创建一个有层次的嵌套的树。
Bisecting K-Means算法 和 K-Means算法 有什么不同?
Bisecting K-Means算法 并不是一开始就随机选择 K 个中心点,而是先把所有点归为一个簇,然后将该簇一分为二。计算各个所得簇的代价函数(SSE),选择SSE最大的簇再进行划分以尽可能地减小误差,重复上述基于SSE划分过程,直到得到用户指定的簇数目为止。
Bisecting K-Means算法 通常比 K-Means算法运算快一些。
聚类算法的代价函数SSE能够衡量聚类性能,该值越小表示数据点越接近于它们的质心,聚类效果就越好。所以需要对SSE最大的簇进行再一次划分,因为误差平方和越大,表示该簇聚类越不好,越有可能是多个簇被当成一个簇了,因此首先需要对SSE最大的簇进行划分。