当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy Covariance.from_eigendecomposition用法及代码示例


本文简要介绍 python 语言中 scipy.stats.Covariance.from_eigendecomposition 的用法。

用法:

static  Covariance.from_eigendecomposition(eigendecomposition)#

通过特征分解提供的协方差的表示

参数

eigendecomposition 序列

包含由 scipy.linalg.eigh numpy.linalg.eigh 计算的特征值和特征向量数组的序列(通常是元组)。

注意

令协方差矩阵为\(A\) , 让\(V\) 是特征向量矩阵,让\(W\) 是特征值的对角矩阵,使得VW V^T = A.

当所有特征值严格为正时,数据点 的白化是通过计算 来执行的,其中可以按元素取反平方根。 计算为 ,其中 操作按元素执行。

Covariance 类支持奇异协方差矩阵。计算 _log_pdet 时,将忽略非正特征值。当要白化的点不在协方差矩阵的列的范围内时,白化就不能很好地定义。这里采用的约定是将非正特征值的平方根倒数视为零。

例子

准备对称正定协方差矩阵 A 和数据点 x

>>> import numpy as np
>>> from scipy import stats
>>> rng = np.random.default_rng()
>>> n = 5
>>> A = rng.random(size=(n, n))
>>> A = A @ A.T  # make the covariance symmetric positive definite
>>> x = rng.random(size=n)

执行A 的特征分解并创建 Covariance 对象。

>>> w, v = np.linalg.eigh(A)
>>> cov = stats.Covariance.from_eigendecomposition((w, v))

Covariance 对象的函数与参考实现进行比较。

>>> res = cov.whiten(x)
>>> ref = x @ (v @ np.diag(w**-0.5))
>>> np.allclose(res, ref)
True
>>> res = cov.log_pdet
>>> ref = np.linalg.slogdet(A)[-1]
>>> np.allclose(res, ref)
True

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.Covariance.from_eigendecomposition。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。