← 返回文章

Gaussion Mixture Models 原理篇

本文是 Cory Maklin 博客关于 Gaussian Mixture Models 的阅读整理。

本文是Cory Maklin博客的阅读整理

Gaussian Mixture Model 背景

大体上和 k-means 是类似的,主要是两点区别

  1. 解决了 k-means 没有解决的一个关键性问题 variance, 就是说没有考虑到cluster内部分布到底是什么形状,直接楞拿一个hyper-sphere球状空间硬套

k-means

相比于上图,我们更希望直接得到下图

img

  1. k-means 进行 hard-classification 而 gaussian-mixture-model 进行的是 soft-classification, k-means中直接就告诉一个点属于哪一个cluster,没有输出属于各个cluster的概率,一锤子买卖没有纠正机会

初识

从数学的角度,高斯混合模型对一个点属于某个分布(cluster)的概率进行建模

P (z = k|q) 中 q表示不同高斯分布的参数(均值,方差,权重)

EM 算法

在 GMM的模型中, 一个点来自哪个高斯分布是隐含变量, 高斯混合模型通过隐变量生成样本, 每个样本点的概率等于各个高斯模型的概率的加权和

  1. 初始化高斯分布的参数 $\theta$

  2. 按照下面的步骤迭代直到收敛

    • 计算 $P(z_i = k| x_i, \theta)$ 也就是某一个数据点位于来自cluster k的概率是多少
    • 更新高斯分布的参数q, 使得概率最大

看上去是有点抽象的…., 可以参考一篇 EM算法介绍 的视频理解

代码

GMM (Gaussian mixture model) 的输入是cluster_number, 初始化分布的参数, 和dbscan一样, 也有一些经验公式可以参考, 比如 AICBIC

小结

GMM 是 K-means的加强版, 额外考虑到了数据簇内部分布不均的情况