传统K_means算法存在的缺陷
(1)算法的初始中心点选择与算法的运行效率密切相关,而随机选取中心点有可能导致迭代次数很大或者限于某个局部最优状态;通常 k << n,且 t << n,所以算法经常以局部最优收敛。
(2)K均值的最大问题是要求用户必须事先给出 k 的值,k 的选择一般都基于一些经验值和多次试验结果,对于不同的数据集,k 的取值没有可借鉴性。
(3)对异常偏离的数据敏感——离群点;K均值对 “ 噪声 ” 和孤立点数据都是敏感的,少量的这类数据就能对平均值造成极大的影响。
二分K_means算法简介
由于传统的K_means算法的聚类结果容易受到初始聚类中心点选择的影响,因此在传统的K_means算法的基础上进行算法的改进,对初始中心点的选择比较严格,各个中心点的距离较远,这就避免了初始聚类中心会选到一个类上,一定程度上克服了算法陷入局部最优的状态。
二分K_means(Bisecting K_means)算法的主要思想是:首先将所有点作为一个簇,然后将该簇一分为二。之后选择能最大限度降低聚类的代价函数(也就是误差平方和)的簇划分为两个簇。依此进行下去,直到簇的数目等于用户给定的数目 k 为止。以上隐含一个原则是:因为聚类的误差平方和能够度量聚类的性能,该值越小表示数据点越接近于他们的质心,聚类的效果越好。所以我们就需要对误差平方和最大的簇进行再一次划分,因为误差平方和越大,表示该聚类效果越不好,越有可能是多个簇被当成了一个簇,所以我们首先需要对这个簇进行划分。