概述
实现步骤:
-
先对待分类数据创建K个起始质心(通常是随机选择);
-
为数据集中的样本找到距离该点最近的质心,分配到该质心的簇中。
-
根据每个簇内的数据点的平均值,重新计算该簇的质心,。
-
重复2.3步,直到聚类中心不再变化。
-
结束,得到k个聚类。
输出:k个簇,使平方误差准则最小。
主要优点:
-
简单快捷;
-
对处理大数据集,该算法是相对可伸缩和高效率的;
-
当结果簇是密集的,而簇与簇之间区别明显时,它的效果较好。
主要缺点:
-
在簇的平均值被定义的情况下才能使用,这对于处理符号属性的数据不适合;
-
必须是先给出k,而且对初值敏感,对于不同的初始值,可能会导致不同的结果;
-
对于噪声和孤立点数据敏感,少量的该类数据能够对平均值产生极大的影响。
二分K均值
该算法的提出目的在于克服K-均值算法收敛于局部最小值的问题(最好的结果是收敛与全局最小值)。
伪代码形式实现步骤:
将所有数据点看成一个簇
当簇的数目小于K
////计算其总误差(注:SSE误差平方和,计算该簇的数据点与质心点的距离的平方和)
….在给定的簇上面进行K-均值聚类(k=2)
….计算将该簇一分为二后的总误差
选择是的误差最小的那个簇进行划分操作
