1
我正在做高斯混合的EM算法,但問題是,我的數據是如此的空閒,所以值都會隨着真正的小值接近零。Nan值是從MATLAB中計算數據的正態分佈?
這裏是有問題的部分
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的值是如此之小。