四、EM 算法与 kmeans 模型

  1. kmeans算法:给定样本集 四、EM 算法与 kmeans 模型 - 图1, 针对聚类所得簇划分 四、EM 算法与 kmeans 模型 - 图2, 最小化平方误差:

    四、EM 算法与 kmeans 模型 - 图3

    其中 四、EM 算法与 kmeans 模型 - 图4 是簇 四、EM 算法与 kmeans 模型 - 图5 的均值向量。

  2. 定义观测随机变量为 四、EM 算法与 kmeans 模型 - 图6 ,观测数据为 四、EM 算法与 kmeans 模型 - 图7 。定义隐变量为 四、EM 算法与 kmeans 模型 - 图8 ,它表示 四、EM 算法与 kmeans 模型 - 图9 所属的簇的编号。设参数 四、EM 算法与 kmeans 模型 - 图10, 则考虑如下的生成模型:

    四、EM 算法与 kmeans 模型 - 图11

    其中 四、EM 算法与 kmeans 模型 - 图12 表示距离 四、EM 算法与 kmeans 模型 - 图13 最近的中心点所在的簇编号。即:

    • 四、EM 算法与 kmeans 模型 - 图14 最近的簇就是 四、EM 算法与 kmeans 模型 - 图15 代表的簇,则生成概率为 四、EM 算法与 kmeans 模型 - 图16
    • 四、EM 算法与 kmeans 模型 - 图17 最近的簇不是 四、EM 算法与 kmeans 模型 - 图18 代表的簇,则生成概率等于 0 。
  3. 计算后验概率:

    四、EM 算法与 kmeans 模型 - 图19

    即:

    • 四、EM 算法与 kmeans 模型 - 图20 最近的簇就是 四、EM 算法与 kmeans 模型 - 图21 代表的簇,则后验概率为 1 。
    • 四、EM 算法与 kmeans 模型 - 图22 最近的簇不是 四、EM 算法与 kmeans 模型 - 图23 代表的簇,则后验概率为 0 。
  4. 计算 四、EM 算法与 kmeans 模型 - 图24 函数:

    四、EM 算法与 kmeans 模型 - 图25

    设距离 四、EM 算法与 kmeans 模型 - 图26 最近的聚类中心为 四、EM 算法与 kmeans 模型 - 图27 ,即它属于簇 四、EM 算法与 kmeans 模型 - 图28 ,则有:

    四、EM 算法与 kmeans 模型 - 图29

    则有:

    四、EM 算法与 kmeans 模型 - 图30

    定义集合 四、EM 算法与 kmeans 模型 - 图31 ,它表示属于簇 四、EM 算法与 kmeans 模型 - 图32 的样本的下标集合。则有:

    四、EM 算法与 kmeans 模型 - 图33

    则有:

    四、EM 算法与 kmeans 模型 - 图34

    这刚好就是 k-means 算法的目标:最小化平方误差。

  5. 由于求和的每一项都是非负的,则当每一个内层求和 四、EM 算法与 kmeans 模型 - 图35 都最小时,总和最小。即:

    四、EM 算法与 kmeans 模型 - 图36

    得到:四、EM 算法与 kmeans 模型 - 图37,其中 四、EM 算法与 kmeans 模型 - 图38 表示集合 四、EM 算法与 kmeans 模型 - 图39 的大小。

    这就是求平均值来更新簇中心。