from_cholesky#
- static Covariance.from_cholesky(cholesky)[Quelle]#
Repräsentation einer Kovarianz, die über den (unteren) Cholesky-Faktor bereitgestellt wird
- Parameter:
- choleskyarray_like
Der untere dreieckige Cholesky-Faktor der Kovarianzmatrix.
Hinweise
Sei die Kovarianzmatrix \(A\) und \(L\) der untere Cholesky-Faktor, so dass \(L L^T = A\). Die Weißung eines Datenpunkts \(x\) erfolgt durch die Berechnung von \(L^{-1} x\). \(\log\det{A}\) wird als \(2tr(\log{L})\) berechnet, wobei die \(\log\)-Operation elementweise durchgeführt wird.
Diese
Covariance-Klasse unterstützt keine singulären Kovarianzmatrizen, da die Cholesky-Zerlegung für eine singuläre Kovarianzmatrix nicht existiert.Beispiele
Bereiten Sie eine symmetrische positiv definite Kovarianzmatrix
Aund einen Datenpunktxvor.>>> 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)
Führt die Cholesky-Zerlegung von
Adurch und erstellt dasCovariance-Objekt.>>> L = np.linalg.cholesky(A) >>> cov = stats.Covariance.from_cholesky(L)
Vergleicht die Funktionalität des
Covariance-Objekts mit einer Referenzimplementierung.>>> from scipy.linalg import solve_triangular >>> res = cov.whiten(x) >>> ref = solve_triangular(L, x, lower=True) >>> np.allclose(res, ref) True >>> res = cov.log_pdet >>> ref = np.linalg.slogdet(A)[-1] >>> np.allclose(res, ref) True