0
注意:这个问题实际上发生在tensorflow内部,并且导致样本不完全来自真正的pdf。然而,原则是相同的,我的目标是理解下面的警告。从python中的多元规范采样时的正半定误差?
也就是说,我试图从python中的多元正态分布进行采样。那就是
np.random.multivariate_normal(mean = some_mean_vector, cov = some_cov_matrix)
当然,任何有效的协方差矩阵都必须是正半定的。然而,用于取样(即通过每个测试为阳性半定性)一些协方差矩阵,得到以下警告
/usr/local/lib/python3.6/site-packages/ipykernel/__main__.py:1: RuntimeWarning: covariance is not positive-semidefinite.
一种这样的基质
A = array([[ 1.00000359e-01, -3.66802835e+00],[ -3.66802859e+00, 1.34643845e+02]], dtype=float32)
为此,我可以找到两个乔列斯基分解和特征值没有警告(最小特征值是7.42144039e-05)。
任何人都可以帮助并告诉我为什么会发生这种情况吗? (在tensorflow中,我只是提供上述矩阵的cholesky分解,并接收不精确的样本,这混淆了我试图做的所有事情)。