1
Gaussian Mixture를 사용하여 EM 알고리즘을 수행하고 있지만 문제는 내 데이터가 너무 여유해서 값이 0에 가까운 아주 작은 값으로 이동한다는 것입니다.MATLAB에서 데이터의 계산 정규 분포에서 얻은 Nan 값은 무엇입니까?
여기
for i=1:ncomp,
**logdenom = -log((2*pi)^(dim/2)*sqrt(abs(det(Cov(:,:,i)))));**
dist = mahalan(X,Mean(:,i),Cov(:,:,i));
y(i,:) = logdenom-0.5*dist;
end
Asterixed 라인이 문제가 문제가있는 부분이다. 계산 중에 NAN 값보다 'inf'값을 반환합니다. 그 문제를 어떻게 해결할 수 있습니까? 나뿐만 아니라
for i=1:ncomp,
dist = mahalan(X,Mean(:,i),Cov(:,:,i));
y(i,:) = exp(-0.5*dist)/sqrt((2*pi)^dim*det(Cov(:,:,i))); % problem
end
로그 기능이없는 그것을 계산하지만 문제는 동일하며 때문에 COV의 값이 너무 작습니다. 이 상황에서 inf
의 방지를