机器学习day14 K均值算法

K均值算法

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

  1. 数据预处理,包括但不限于归一化,离群点处理等

  2. 随机选择K个簇中心,我们记为

  3. image.png
  4. image.png
  5. 定义代价函数,


  6. 令t=0,1,2,3...,进行迭代,重复直至J收敛
    此时,对于每个样本,将分配到距离最近的簇

  7. image.png

  8. 对于每个簇k,重新计算各个簇的中心

  9. image.png

  10. K均值在迭代中,如果J没有达到最小值,那么首先重新计算当前簇的中心

  11. ,调整每个样例

  12. 所属的类别


  13. 来让J的值减少,之后计算

  14. ,调整簇中心

  15. 使J减少,如此重复迭代,直到J减少到最小值,

  16. 此时也收敛。

K均值算法示意图

图片

K均值聚类算法迭代图


简单说,就是一开始我们假设的簇中心是随便找的,并不能将数据合理的分类,我们不断计算各个数据与最近簇中心的误差,然后又计算每类簇新的中心,算出J,直到无法减少,也这是收敛,表示我们找到了最佳的簇中心用来分类。


猜你喜欢

转载自blog.51cto.com/15069488/2578584