Я использую алгоритм EM с Gaussian Mixture, но проблема в том, что мои данные настолько скудны, что значения идут с очень маленькими значениями, близкими к нулю.
Вот проблемная часть
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
Строка со звездочкой - это проблема. Во время расчета он возвращает значения «inf» после полученных значений NAN. Как я могу справиться с этой проблемой. Я вычисляю это и без логарифмической функции
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 такие маленькие.