from_diagonal#
- статический Ковариация.from_diagonal(диагональ)[источник]#
Возвращает представление ковариационной матрицы из её диагонали.
- Параметры:
- диагональarray_like
Диагональные элементы диагональной матрицы.
Примечания
Пусть диагональные элементы диагональной ковариационной матрицы \(D\) хранится в векторе \(d\).
Когда все элементы \(d\) строго положительны, отбеливание точки данных \(x\) выполняется путем вычисления \(x \cdot d^{-1/2}\), где обратный квадратный корень можно взять поэлементно. \(\log\det{D}\) рассчитывается как \(-2 \sum(\log{d})\), где \(\log\) операция выполняется поэлементно.
Это
Covarianceкласс поддерживает вырожденные ковариационные матрицы. При вычислении_log_pdet, неположительные элементы \(d\) игнорируются. Отбеливание не определено корректно, когда точка для отбеливания не лежит в пространстве столбцов ковариационной матрицы. Принятое здесь соглашение заключается в обработке обратного квадратного корня неположительных элементов \(d\) как нули.Примеры
Подготовить симметричную положительно определённую ковариационную матрицу
Aи точка данныхx.>>> import numpy as np >>> from scipy import stats >>> rng = np.random.default_rng() >>> n = 5 >>> A = np.diag(rng.random(n)) >>> x = rng.random(size=n)
Извлечь диагональ из
Aи создатьCovarianceобъект.>>> d = np.diag(A) >>> cov = stats.Covariance.from_diagonal(d)
Сравните функциональность
Covarianceобъект против эталонных реализаций.>>> res = cov.whiten(x) >>> ref = np.diag(d**-0.5) @ x >>> np.allclose(res, ref) True >>> res = cov.log_pdet >>> ref = np.linalg.slogdet(A)[-1] >>> np.allclose(res, ref) True