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的值是如此之小。