1,简述:算法接受参数K,然后将事先输入的n个数据对象划分为K个聚类并满足:同一个聚类中的对象相似度较高;而不同类中的对象相似度较小。
2,算法思想:以空间中K个点为中心进行聚类,某个数据对象最靠近哪一类,就将这个数据归为哪一类,并通过迭代的方法,逐次更新各聚类中心的值,直到得到符合预期的聚类结果。
3,算法描述:
a,适当选择K个类的初始中心;
b,在每次迭代中,对任一一个样本,求其到k各中心的距离,将该样本归到距离最短的中心所在的类;
c,利用求均值方法更新每个类的中心值;
d,对于所有的K个聚类中心,如果利用b,c的迭代法更新后,如果中心值保持不变,或者中心值的变化小于设定的阈值,则迭代结束,否则继续迭代。
4,算法流程:
输入数据:K,data[n]
a,选择K个初始中心点,例如K[0]=data[0],… , K[k-1]=data[k-1];
b,对于data[0],… ,data[n-1]分别与K[0],… ,K[k-1]比较,假定与K[i]差值最少,就将数据标记为i类;
c,对于所有标记为i类的点,重新计算K[i]=(所有标记为i的data[i]之和/标记为i的个数);
d,重复b,c,直到所有K[i]值不变或者小于设定的阈值。
5,优点:速度快,简单
缺点:最终结果跟初始点选择相关,容易陷入局部最优,并且需要事先知道聚类个数K值
快速理解K-means聚类算法
最新推荐文章于 2022-08-05 21:28:21 发布