聚类算法 - 高斯混合分布
高斯混合模型:一个数据集可以由一个或多个高斯模型加权求和来生成,
每个高斯模型代表一簇。采用概率模型来表达数据分布。
由于假设了整个数据集是由多个高斯分布生成,现在我们要求整个数据的
高斯分布。如果我们已知数据集中每个数据的的簇编号,那么我们就能知道哪
些数据共同生成一个高斯分布,从而利用下面公式来求出每簇数据的高斯参
数,从而求出具体分布形式。这些公式其实是通过极大似然估计推导出来的。
but,我们并不知道每个数据的簇编号,所以上面公式中的 ,
就无法确定。也即,我们不知道那些样本属于同一个高斯分布,无法使用极大似
然估计推导出上述公式,只能使用 EM 算法在逐次优化。因此,我们只能使用所
以数据来对每一个高斯模型进行估计。
1. n 维高斯分布
()()11()()iiixclusteriiTikkxclusteriiNNxNxxNiN()xclusteri
其中 代表均值向量, 代表协方差矩阵。n 代表高斯分布为 n 维,即所给
数据有 n 个特征。
2. 高斯混合分布
2.1 高斯混合分布的数学形式
假设混合分布包含的高斯模型的个数为 m,任意样本 的高斯混合分布:
其中
。
2.2 样本 由高斯分布 生成的概率 - E
3. 极大似然估计 - M
3.1 联合分布
样本的个数为 k:
11()()21221(|,)(2)||TxxnPxex1(|,)(|,)mGMMiiiiPxPx11miijxiG1(|)(,|)(|)()()(|,)()()(|,)=(|,)ijiijjiijjiiijijiimijiiiPGxPxPxGPGPxPxPGPxPxPx1(,)(,,)(|)kijiijijjLGxLxPGx
3.2 极大似然估计
极大似然估计就是求解一组模型参数,使得当前模型下的数据后验概率的联
合概率最大。
对三个参数
分别求导,得到第 i 个高斯模型的参数:
第 i 个高斯模型的混合系数 等于所有样本属于该高斯模型的后验概率的
加权平均。
第 i 个高斯模型的均值向量 等于,所有样本在该模型下的平均期望。换
句话说,样本的概率越大,则该样本越能决定这个高斯模型的位置。
第 i 个高斯模型的协方差矩阵。
4. EM 算法
4.1 MLE,MAP,EM 算法
MLE:模型种类已知,属于该模型的样本已知,那么利用极大似然估计可以
求出模型参数,比如 logistic 回归,以及开篇提到的样本属于哪个簇已知的情
况下都可以适用。频率学家的观点。
1111ln(,)ln(|)ln(|)(|,)=ln(|,)kkijijijjjkijiimjijiiiLGxPGxPGxPxPx,,iii1111(|)(,|)kkiijiijjjPGxPxkki1111(|)(,|)(|)(,|)kkijjiijjjjikkijiijjjPGxxPxxPGxPxi11(,|)()()(,|)mTiijjijijimiijjPxxxPx
MAP:朴素贝叶斯。
EM 算法:模型种类已知,但是属于该模型的样本未知(这其实是一个
clusters label 隐变量,即非观测变量),因此 EM 算法适用于含有隐变量的概
率模型的极大似然估计。比如 GMM。
4.2 EM 算法 & GMM
GMM 只知道当前数据属于多个高斯分布,但是具体哪些数据属于一个高斯却
不知道。因此只能使用 EM 算法:
因此整个过程就是不断迭代上面算法的 E,M 步,直到结束,利用初始参数
生成
,极大似然估计生成
;利用新得到的
去更
新
…这样鸡生蛋,蛋生鸡。直到达到结束条件,比如最大迭代次
数,或者高斯模型的参数几乎没什么改变。最终,每个高斯模型的 代表簇中
心,而每个点的在每一簇下的概率可反映当前点属于哪一簇(概率最大)。算法
实现过程在这里 http://blog.csdn.net。
4.3 GMM 优化的核心 – 概率矩阵(probMatrix)
下面的图,代表一个概率矩阵,一行是一个样本;一列是一个高斯模型,
总共四个高斯;每个数据代表当前行的样本属于当前列的模型的概率。
整个 EM 算法就是为了把左边这个初始化的一个概率矩阵优化成右边的形
式。从右边,我们能很明显的知道任意一个样本属于哪一簇。
,,(,|)iijPx,,,,(,|)iijPx