【 kmeans算法原理】
- 随机选取k个中心点
- 遍历所有数据,将每个数据划分到最近的中心点中(根据距离的大小进行划分,即计算每个样本点到所有中心点的距离,选择距离最小的那个)
- 计算每个聚类的平均值,并作为新的中心点
- 重复2-3,直到这k个中心点不再变化(收敛了),或迭代次数达到规定值
matlab函数调用:
[IDX,C,sumd,D] = kmeans(X,k,'distance','sqEuclidean','start','sample')
//距离度量为欧氏距离的平方,初始点从样本X中随机选择k个点
// IDX: 每个样本点所在的类别
// C: 所聚类别的中心点坐标位置(k*p,p为样本属性的维度)
//sumd: 每个类内各点到中心点的距离之和(1*k)
// D:每个点到各类中心点的距离(n*k)
【算法的优化方法】
原因:初始中心点的随机选择——可能导致聚类的不正确性
方法1:重复执行几次kmeans,选取sum(sumd)最小的一次作为最终的聚类结果
方法2:重复执行几次kmeans,选取轮廓系数(下面有介绍)最小的一次

本文详细介绍了k-means聚类算法的原理,包括随机选取k个中心点,根据距离划分数据,不断更新中心点直至收敛。同时探讨了k-means的优化方法,如通过多次执行选取最佳聚类结果,以及如何利用轮廓系数评估聚类效果。此外,还提出了K值的选取策略,通过计算不同k值下的平均轮廓系数来确定最佳的集群数目。
最低0.47元/天 解锁文章
967

被折叠的 条评论
为什么被折叠?



