K-means,高斯混合模型及其EM步骤详解

作为机器学习算法的一员,不同于SVMs(支持向量机),贝叶斯,logistic regression这些监督学习算法,K-means是一种无监督的聚类算法。这里的K表示类别的个数。

K-means算法EM步骤如下:

  1. 给定K的值,代表有K个不同的类别。
  2. 对每一个类别,猜测其中心点。
  3. 在已知K个中心点的情况下,计算每个点到这K的中心点的距离,距离最小的那个中心点所代表的类就是该点所属的类别,这样对所有样本完成分类。
  4. 针对每一个类重新计算中心点,即将该类中所有点加和取平均,该均值则为新的中心点
  5. 重复3~4的过程直到中心点收敛。

下图显示了K-means的每一步骤的结果:



高斯混合模型GMMs Gaussian Mixture Models

高斯模型即正态分布,高斯混合模型就是几个正态分布的叠加,每一个正态分布代表一个类别,所以和K-means很像,高斯混合模型也可以用来做无监督的聚类分析。


高斯混合模型聚类算法EM步骤如下:

  1. 猜测有几个类别,既有几个高斯分布。
  2. 针对每一个高斯分布,随机给其均值和方差进行赋值。
  3. 针对每一个样本,计算其在各个高斯分布下的概率。


4. 针对每一个高斯分布,每一个样本对该高斯分布的贡献可以由其下的概率表示,如概率大则表示贡献大,反之亦然。这样把样本对该高斯分布的贡献作为权重来计算加权的均值和方差。之后替代其原本的均值和方差。

5. 重复3~4直到每一个高斯分布的均值和方差收敛。

下图显示了高斯混合模型的聚类过程:



注:当高斯混合模型的特征值维数大于一维时,在计算加权的时候还要计算协方差,即要考虑不同维度之间的相互关联。

高斯混合模型和K-means的比较:

相同点:

  1. 分类受初始值的影响
  2. 可能限于局部最优解
  3. 类别的个数只能靠猜测 (有K越大MAP最大后验概率越大的趋势)

不同点:

  1. K-means是硬分类,要么属于这类,要么属于那类,而高斯混合式软分类,一个样本60%属于A,40% 属于B。
  2. 多维的时候高斯混合在计算均值和方差时使用了协方差,应用了不同维度之间的相互约束关系。

发布于 2017-09-22