根据定义,行列式为零的方阵不应是可逆矩阵。然而,在生成协方差矩阵后,我成功地取了其逆,但是取协方差矩阵的行列式却得到了0.0的输出。
可能出了什么问题?我应该不相信行列式的输出,还是不应该相信逆协方差矩阵?还是两者都不应该相信?
以下是我的代码片段:
cov_matrix = np.cov(data)
adjusted_cov = cov_matrix + weight*np.identity(cov_matrix.shape[0]) # add small weight to ensure cov_matrix is non-singular
inv_cov = np.linalg.inv(adjusted_cov) # runs with no error, outputs a matrix
det = np.linalg.det(adjusted_cov) # ends up being 0.0
decimal.Decimal
类集成。这将为使用该方法进行的任何计算添加很多开销,因此我建议仅在绝对必要时使用Decimal
。 - BobChao87