當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。