K-means算法

来源:互联网 发布:黔巨人网络 编辑:程序博客网 时间:2024/05/16 05:24

1. 数据

训练集为:

{x(1),x(2),...,x(m)}

其中,x(i)Rn, x(i)为一个向量,表示数据集中的一个。

2. 算法流程

  • 1.初始化聚类中心:

    {μ1,μ1,...,μk}

    其中,μjRn

    PS: 首先初始化分类个数K,然后随机初始化K个聚类中心

  • 2.迭代

    • 对于每一个i:
      c(i)=argminj||x(i)μj||2,i=1,2,...,m

    对于每一个样本,找出它与哪一个聚类中心最近。c(i)=ji

  • 对于每一个j:
    μj=m11{c(i)=j}x(i)m11{c(i)=j},j=1,2,...,K

    对于每一个聚类中心,求与它距离最近的数据的均值,作为新的聚类中心。

迭代终止条件:
+ 中心位置不再改变:

norm(pre_μjμj)<δ

+ 目标函数不再改变:
J(c,μ)=mi=1||x(i)μc(i)||2

0 0
原创粉丝点击