matlabでEMを使用してMoGを実装する割り当てがあります。割り当て:
私のコードatm;
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である必要があると思いますが。