常规的KMeans算法的误差通常只能收敛到局部最小,在此,引入一种称为二分K-Means(bisecting kmeans)的算法,相较于常规的KMeans,二分KMeans不急于一来就随机 K 个聚类中心,而是首先把所有点归为一个簇,然后将该簇一分为二。计算各个所得簇的代价函数(即均方误差),选择误差最大的簇再进行划分(即最大程度地减少误差),重复该过程直至达到期望的簇数目。
二分K-means算法的主要思想:
首先将所有点作为一个簇,然后将该簇一分为二。之后选择能最大程度降低聚类代价函数(也就是误差平方和)的簇划分为两个簇。以此进行下去,直到簇的数目等于用户给定的数目
二分KMeans算法流程大致如下:
初始化簇表,使之包含由所有的点组成的簇。
repeat
{
{对选定的簇进行多次二分试验}