版权声明:学习交流为主,未经博主同意禁止转载,禁止用于商用。 https://blog.csdn.net/u012965373/article/details/88878694
K -Means聚类算法的缺陷
在K-Means的函数测试中,可能会偶尔陷入局部最小值(局部最优的结果,但不是全局最优的结果)
解决方案:
为了克服K-Means算法收敛于局部最小值的问题,有一个好的解决方案是二分K-Mean(二分K均值 bisecting K-Means)的算法
原理:
该算法首选所有点作为一个簇,然后将该点一份为二。
之后选择一个簇继续划分,选择哪一个簇进行划分取决于划分时候可以最大程度降低SSE(平方和误差)的值。
上述基于SSE的划分过程不断重复,值到得到用户指定的簇数目为止。
伪代码:
-
将所有的点看成为一个簇
-
当簇数目小于K时
-
对于每一个簇
-
-
计算总误差
-
在给定的簇上面进行K-Means聚类(k = 2)
-
计算将该簇一份为二之后的总误差
-
-
选择使得误差最小的簇进行划分操作