K-means 笔记

  • K-means 一种无监督的聚类算法

    将相同类别的点聚集在一起,对于不同类别尽量的区分开

  • 核心目标: 将给定的数据划分为K个簇,并且给出每个簇的中心点,即质心
    k-means实例

    K-means 算法步骤

  1. 数据预处理: 剔除离群点、数据归一化、数据标准化
  2. 初始化: 随机选择K个中心点u(0)1, u(0)2, u(0)3, …, u(0)K
  3. 定义损失函数:
    损失函数J
  4. 交替迭代(t为步数,重复一下两个步骤直到J收敛)
  • 对于每个样本点,将其分配到距离最近的簇

    点到质心距离

  • 对于每个簇,重新计算聚类质心

    更新聚类中心

K-means算法缺点

  1. 人工选取k值, 不一定符合数据分布
  2. 收初始值和离群点的影响较为严重,稳定性差
    ## K-means算法优点
  3. 对于大数据集,算法时间读咋读为线性O(NKT)

    N: 样本点个数
    K: 聚类中心个个数
    T: 迭代轮数

  4. 局部最优解通常已经可以满足问题需要

k-means算法调优

  1. K值选择(手肘法)

k-means算法改进

  • 改进点: 对初始值的选择进行优化
  • k-means++算法
    • 改进思想: 选取第n+1个聚类中心时:
    • 距离其他聚类中心越远,被选中的概率越大