机器学习day14K均值算法

2020-08-23  本文已影响0人  rivrui

K均值算法

K均值聚类的核心目标是将给定的数据集划分成K个簇,并给出每个数据对应的簇中心点。

  1. 数据预处理,包括但不限于归一化,离群点处理等
  2. 随机选择K个簇中心,我们记为\mu_1^{(0)},\mu_2^{(0)},...,\mu_K^{(0)}
  3. 定义代价函数,J(c,\mu)=\underset{\mu}{min} \underset{c}{min} \sum_{i=1}^M|||x_i-\mu_{c_i}||^2
  4. 令t=0,1,2,3...,进行迭代,重复直至J收敛
    此时,对于每个样本x_i,将分配到距离最近的簇
    c_i^{(t)}\leftarrow\underset{k}{argmin}||x_i-\mu_k^{(t)}||^2
    对于每个簇k,重新计算各个簇的中心
    \mu_k^{(t+1)}\leftarrow\underset{\mu}{argmin}\sum_{i:c_{i}^{(t)}=k}||x_i-\mu||^2
    K均值在迭代中,如果J没有达到最小值,那么首先重新计算当前簇的中心\{u_k\},调整每个样例x_i所属的类别c_i来让J的值减少,之后计算\{c_i\},调整簇中心\{\mu_k\}使J减少,如此重复迭代,直到J减少到最小值,\{\mu_k\}和\{c_i\}此时也收敛。

K均值算法示意图

K均值聚类算法迭代
上一篇下一篇

猜你喜欢

热点阅读