k-means聚类及其改进

首先,定义N个数据集,
step1:随机选定k个样本,定义为初始聚类中心C;
step2:分别计算每个样本点到聚类中心点的距离,选出每个样本距离最短的中心点,并将其分到‘同一个阵营’中。
step3:分类结束后,取‘每个阵营’中的平均值作为新的聚类中心(此时同样选出k个聚类中心)
step4:不断重复step2-step3,直到聚类中心点的位置不再变化。

改进:
1.基于初始聚类中心的改进 K-means++
step1:从数据集中随机选取一个样本作为初始聚类中心;
step2:计算每个样本到聚类中心的距离D(x)(欧氏距离),同时计算出每个样本被选定为下一个聚类中心的概率,然后根据轮盘赌博算法确定下一个聚类中心。
step3:不断重复step2,知道选出k个聚类中心。
注意:当k>=2时,每个样本会有多个距离选取最小的距离作为D(x)。

2.基于聚类中心数的改进 ISODATA
与K-means和K-means++相比ISODATA算法可以根据实际情况调整k值。
采取的手段是:(1)分裂操作,增加聚类中心数;(2)合并操作,减少聚类中心数。
step1:首先确定预期的聚类中心数 。实际上真正的聚类中心数也是在预期的聚类中心数的基础上决定的。最终的聚类中心数目范围是 。
step2:随机选取 个样本作为初始聚类中心;
step3:计算每个样本到每个聚类中心的距离,选取每个样本中距离最短的聚类中心,并归为一个“阵营”中;
step4:判断每个类中的元素的个数。如果个数小于 ,则丢弃该类,此时 ,并将该类中的元素重新分配给其他类;
step5:判断用方差每个类中元素的分散程度。当分散程度太大并时,可能进行分裂操作,在此分裂过程中需要注意此类别中的元素个数要大于 ,此时 ;
step6:判断两个类别聚类中心之间允许的最小距离。当两个类别距离非常近时,则需要将这两个类别进行合并操作,如果合并此时 ;
step7:对每个类别分别计算均值作为新的聚类中心,再次进行分类;
step8:如果 ,说明此时类别太少,进行分裂操作;如果 ,说明当前类别数太多,进行合并操作;
step9:不断重复step3-step8,直到达到迭代次数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值