我有一个任务是在 matlab 中用 EM 实现 MoG。那作业:
我的自动取款机;
clear
clc
load('data2')
%% INITIALIZE
K = 20
pi = 0.01:((1-0.01)/K):1;
for k=1:20
sigma{k} = eye(2);
mu(k,:) = [rand(1),rand(1)];
end
%% Posterior over the laten variables
addition = 0;
for k =1:20
addition = addition + (pi(k)*mvnpdf(x,mu(k,:), sigma{k}));
end
test = 0;
for k =1:20
gamma{k} = (pi(k)*mvnpdf(x,mu(k), sigma{k})) ./ addition;
end
数据有 1000 行和 2 列(所以 1000 个数据点)。我现在的问题是如何计算责任。当我尝试计算协方差矩阵时,我得到一个 1x1000 矩阵。虽然我相信协方差矩阵应该是 2x2。