From 57392821f3b7e0909578da0ff95c8aae4322bb4d Mon Sep 17 00:00:00 2001 From: osdf <osendorf@gmail.com> Date: Tue, 14 Dec 2010 17:44:10 +0100 Subject: [PATCH] Fixed problem with big full covariance matrices: sum,log instead of log,prod for loglikelihood computations. --- scikits/learn/mixture.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scikits/learn/mixture.py b/scikits/learn/mixture.py index 47247c3c69..7b9a5bf733 100644 --- a/scikits/learn/mixture.py +++ b/scikits/learn/mixture.py @@ -561,10 +561,10 @@ def _lmvnpdffull(obs, means, covars): log_prob = np.empty((nobs,nmix)) for c, (mu, cv) in enumerate(itertools.izip(means, covars)): cv_chol = linalg.cholesky(cv, lower=True) - cv_det = np.prod(np.diagonal(cv_chol))**2 + cv_log_det = 2*np.sum(np.log(np.diagonal(cv_chol))) cv_sol = solve_triangular(cv_chol, (obs - mu).T, lower=True).T log_prob[:, c] = -.5 * (np.sum(cv_sol**2, axis=1) + \ - ndim * np.log(2 * np.pi) + np.log(cv_det)) + ndim * np.log(2 * np.pi) + cv_log_det)) return log_prob -- GitLab