K-means算法
参考资料:K-means算法
一、步骤
K-means算法是一种迭代算法,它的工作是簇分类+移动聚类中心
每次内循环的第一步是簇分类
内循环的第二步是移动聚类中心
具体过程如下:
step1:
随机生成两点,也就是图上的这两个×,我们把它称为聚类中心
选取两个点的原因是我想把数据分成两类
step2:簇分类
遍历每个绿点,看它里红叉更近还是离蓝叉更近,离哪个更近就把绿点染成什么色
step3:移动聚类中心
经过一次完整过得簇分类后,我们把红叉移动到所有红点的中心,蓝叉移动到所有蓝点的中心,然后回到step2,一直重复,直到聚类中心不再移动为止
二、算法
K为我们想要的聚类总数,x(i)为样本点,为n维向量
这个μk是点的位置
1.随机初始化聚类中心,得到c(1),c(2),…,c(k)
2.repeat{
for x(1) to x(m):find c(j)=the most closest to x(i) //找索引
for c(1) to c(k):move c(i) to average of points assigned to cluster k //更新点的位置
}