该软件包采用期望最大化算法拟合高斯混合模型(GMM)。它适用于任意维度的数据集。
采用对数域概率计算等方法来提高数值稳定性,避免高维数据概率计算中经常出现的浮点数下溢问题。
通过使用顶点化和矩阵分解,代码也经过了仔细的调优,以提高效率。
该算法得到了广泛的应用。详细内容可以在《模式识别与机器学习》或维基页面中找到
http://en.wikipedia.org/wiki/Expectation-maximization_algorithm
这个函数是健壮的和高效的,但是代码结构是很容易阅读的。请尝试下面的代码演示:
关闭所有;清晰;
d = 2;
k = 3;
n = 500;
[X,标签]= mixGaussRnd (d、k、n);
plotClass (X,标签);
m =地板(n / 2);
X1 = X (:, 1: m);
X2 = X (:, (m + 1):结束);
%的火车
(z1、模型llh) = mixGaussEm (X1, k);
图;
情节(llh);
图;
plotClass (X1, z1);
%预测
z2 = mixGaussPred (X2,模型);
图;
plotClass (X2, z2);
除了使用EM来拟合GMM,我强烈推荐你尝试我的另一个提交:高斯混合模型的变分贝叶斯推断
(//www.tatmou.com/matlabcentral/fileexchange/35362-variational-bayesian-inference-for-gaussian-mixture-model),对GMM进行贝叶斯推理。该算法的优点是可以自动识别混合组分的数量。
根据要求,我还提供了样本外推断的预测函数。
这个函数现在是PRML工具箱的一部分(//www.tatmou.com/matlabcentral/fileexchange/55826-pattern-recognition-and-machine-learning-toolbox)
对于那些想知道如何完成作业的人,不要给我发电子邮件。
引用作为
莫陈(2021)。高斯混合模型(EM GMM)的EM算法(//www.tatmou.com/matlabcentral/fileexchange/26184-em-algorithm-for-gaussian-mixture-model-em-gmm), MATLAB中央文件交换。检索.
MATLAB版本兼容性
平台的兼容性
窗户 macOS Linux标签
确认
启发:高斯混合模型的变分贝叶斯推理,模式识别和机器学习工具箱
启发:GMMVb_SB (X),基于先验超参数的高斯混合模型参数估计,狄利克雷过程高斯混合模型,高斯混合模型的变分贝叶斯推理,背景噪声高斯混合模型的EM算法