K-Means算法

K-Means聚类算法不用给出数据集的聚类标签,因此它是一种无监督学习算法,在没有十分明显的分类界限的聚类问题中十分有用。
在聚类问题中我们考虑如下数据集\(\{x^{(1)},\cdots x^{(n)})\}\),我们想要将这些数据点划分到几个集群中,使用K-Means聚类算法的步骤如下:

目标

\[ \begin{align} \underset{\mu}{min} \underset{C}{min} \sum_{i=1}^{K} \sum_{x \in C_i}|x-\mu_{i}|^2 \end{align} \]

初始化

随机选取K个点 $ u_{1},u_{2} \dots,u_{k} $ 作为聚类中心,其中K表示聚类个数,该参数由人为设定。

迭代

  1. 对于每一个样本\(i\), 将样本分配给最近的聚类中心(分配依据:该样本到每个聚类中心的欧式距离):
    \[ \begin{align} c^{i}=arg \underset{j}{min} ||x^{(i)}-u_j||^2 \end{align} \]
  2. 对于每一个聚类\(j\),用类内样本的质心更新聚类中心:
    \[ \begin{align} u_{j}=\dfrac{\sum_{i=1}^n 1 \cdot \{c^{(i)}=j \}x^{(i)}}{\sum_{i=1}^n 1 \cdot \{c^(i)=j \} } \end{align} \]

结束

当样本和类的所属关系不再改变时结束算法执行。

K-Means聚类算法

  • 如图(a)所示:原始样本集
  • 如图(b)所示:随机选择2个聚类中心
  • 如图(c)所示:将样本分配给距离最近的聚类中心
  • 如图(d)所示:计算类内样本质心更新聚类中心
  • 如图(e)所示:跳转执行图(c)的内容
  • 如图(f)所示:算法执行结束

转载于:https://www.cnblogs.com/jeapwu/p/11522210.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值