K-means-高斯混合模型GMM
https://zhuanlan.zhihu.com/p/29538307
作为机器学习算法的一员,不同于SVMs(支持向量机),贝叶斯,logistic regression这些监督学习算法,K-means是一种无监督的聚类算法。这里的K表示类别的个数。
K-means算法EM步骤如下:
- 给定K的值,代表有K个不同的类别。
- 对每一个类别,猜测其中心点。
- 在已知K个中心点的情况下,计算每个点到这K的中心点的距离,距离最小的那个中心点所代表的类就是该点所属的类别,这样对所有样本完成分类。
- 针对每一个类重新计算中心点,即将该类中所有点加和取平均,该均值则为新的中心点
- 重复3~4的过程直到中心点收敛。
下图显示了K-means的每一步骤的结果:
高斯混合模型GMMs Gaussian Mixture Models
高斯模型即正态分布,高斯混合模型就是几个正态分布的叠加,每一个正态分布代表一个类别,所以和K-means很像,高斯混合模型也可以用来做无监督的聚类分析。
高斯混合模型聚类算法EM步骤如下:
- 猜测有几个类别,既有几个高斯分布。
- 针对每一个高斯分布,随机给其均值和方差进行赋值。
- 针对每一个样本,计算其在各个高斯分布下的概率。
针对每一个高斯分布,每一个样本对该高斯分布的贡献可以由其下的概率表示,如概率大则表示贡献大,反之亦然。这样把样本对该高斯分布的贡献作为权重来计算加权的均值和方差。之后替代其原本的均值和方差。
重复3~4直到每一个高斯分布的均值和方差收敛。
下图显示了高斯混合模型的聚类过程:
注:当高斯混合模型的特征值维数大于一维时,在计算加权的时候还要计算协方差,即要考虑不同维度之间的相互关联。
高斯混合模型和K-means的比较:
相同点:
- 分类受初始值的影响
- 可能限于局部最优解
- 类别的个数只能靠猜测 (有K越大MAP最大后验概率越大的趋势)
不同点:
- K-means是硬分类,要么属于这类,要么属于那类,而高斯混合式软分类,一个样本60%属于A,40% 属于B。
- 多维的时候高斯混合在计算均值和方差时使用了协方差,应用了不同维度之间的相互约束关系。