我有一个矩阵,它没有通过单一测试,我正在计算朴素贝叶斯分类器。我正在处理方程的ln(det(sigma))
部分。
if np.linalg.cond(covarianceMatrix) < 1/sys.float_info.epsilon:
return np.log(np.linalg.det(covarianceMatrix))
else:
return a pseudo determinant
当协方差矩阵是单数时,我必须找到伪行列式。我怎么能这样做?
答案 0 :(得分:1)
eig_values = np.linalg.eig(covarianceMatrix)
pseudo_determinent = np.product(eig_values[eig_values > 1e-12])
答案 1 :(得分:0)
你能用numpy的pinv来计算伪逆,然后用它来计算行列式吗? http://www.sosmath.com/matrix/inverse/inverse.html