这是高斯混合模型的变分贝叶斯推理方法。与EM算法(最大似然估计)不同,它可以自动确定混合成分的数量k。请尝试以下代码进行演示:
关闭所有;清晰;
D = 2;
K = 3;
N = 2000;
[X,z] = mixGaussRnd(d,k,n);
plotClass (X, z);
M = floor(n/2);
X1 = X(:,1:m);
X2 = X(:,(m+1):end);
% VB拟合
[y1, model, L] = mixGaussVb(X1,10);
图;
plotClass (X1, y1);
图;
情节(左)
预测测试数据
[y2, R] = mixGaussVbPred(model,X2);
图;
plotClass (X2, y2);
该数据集由3个集群组成。您只需要设置一个数字(比如10),这个数字大于集群的固有数量。算法会自动找到合适的k。
算法的详细描述可以在参考文献中找到。
模式识别和机器学习作者:Christopher M. Bishop (P.474)
根据请求,我提供了样本外推断的预测函数。
此函数现在是PRML工具箱的一部分(//www.tatmou.com/matlabcentral/fileexchange/55826-pattern-recognition-and-machine-learning-toolbox).
引用作为
莫陈(2023)。高斯混合模型的变分贝叶斯推理(//www.tatmou.com/matlabcentral/fileexchange/35362-variational-bayesian-inference-for-gaussian-mixture-model), MATLAB中央文件交换。检索.
MATLAB版本兼容性
使用R2016a创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux标签
VbGm /
版本 | 发表 | 发布说明 | |
---|---|---|---|
1.0.0.0 | 增加了预测功能,大大简化了代码 |