需要学习前置知识:
聚类,可参考 sheng的学习笔记-AI-聚类(Clustering)-CSDN博客
EM算法,可参考 sheng的学习笔记-AI-EM算法-CSDN博客
贝叶斯,可参考 sheng的学习笔记-AI-贝叶斯(Bayesian)分类-CSDN博客
基础知识
什么是高斯混合模型
高斯混合模型(Gaussian Mixture Models ,GMMs)假设存在一定数量的高斯分布,并且每个分布代表一个簇。高斯混合模型倾向于将属于同一分布的数据点分组在一起。
它是一种基于概率分布的聚类算法,它是首先假设每个簇符合不同的高斯分布,也就是多元正态分布,说白了就是每个簇内的数据会符合一定的数据分布。
我们有三个簇,用三种颜色表示-蓝色、绿色和青色。我们用红色突出显示一个数据点,这个点划分进蓝色簇的概率为1,而划分进绿色簇或者青色簇的概率为0。
考虑另一个点-介于蓝色和青色簇之间(在下图中突出显示),这个点划分进绿色簇的概率为0,对吧?而划分进蓝色、青色簇的概率分别是0.2,0.8。
不再使用基于距离的模型,而是使用基于分布的模型,这就是高斯混合模型出现在本文的意义
举例
想象你在一个果园,这个果园里有苹果、梨和桃子三种水果。每种水果的大小和重量都有一定的特点。高斯混合就像是我们用来描述这些水果特点的工具。在这个模型中,我们用三个"高斯分布"(简单来说,就是一种特殊的图形或曲线)来分别描述苹果、梨和桃子的大小和重量。
每个高斯分布都可以被看作是一条"曲线",这条曲线的形状由三个参数决定:均值(中心位置)、协方差(宽度或形状)和混合系数(高度)。算法的目标就是调整这些曲线,让它们尽可能准确地描述每种水果的特点。
数学知识
正态分布/高斯分布
正态分布(Normal distribution),也称"常态分布",又叫高斯分布(Gaussian distribution),正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线
(多元)高斯分布
上述的只适用于单个变量,在两个变量的情况下,我们将得到如下所示的三维钟形曲线,而不是二维钟形曲线:
对n维样本空间X中的随机向量x,若x服从高斯分布,其概率密度函数为
其中的a,是代表我们选择每个簇的概率,那么它的和肯定是等于1的
流程
- 假设k个高斯分布,然后判断每个样本符合各个分布的概率,将该样本划为概率最大的那个分布簇内
- 然后一轮后,进行更新我们的高斯分布参数,就会用到我们的极大似然估计
- 然后再基于新的分布去计算符合各个分布的概率,不断迭代更新,直至模型收敛达到局部最优解,常见的算法就是EM算法,它会同时估计出每个样本所属的簇类别以及每个簇的概率分布的参数。
概率密度常记为:f(X)=p(x∣μi,∑) 意思就是在参数为一定值的情况下符合的分布,对应相应的概率密度函数。
我们会求出数据 j 符合每个分布的概率,然后获得之中最大的概率,那么数据 j 就会被划分到与之对应的簇
在求该概率时,公式分子和分母都存在某一分布的概率密度,我们只是知道符合高斯分布,但是具体的参数是不知道的,
为了获得概率密度函数,采用极大似然的方式(常见的有EM算法),就是我们的样本数据出现在对应分布的概率乘积达到最大
最大化似然:
算法代码
上图中公式如下
解释如下
示例
数据集:
参考文章
【机器学习】聚类算法------高斯混合聚类(理论+图解)-CSDN博客
独家 | 使用高斯混合模型,让聚类更好更精确(附数据&代码&学习资源)
书 :机器学习 周志华