Используйте Scipy Multivariate на 3D -ковариационной матрицеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Используйте Scipy Multivariate на 3D -ковариационной матрице

Сообщение Anonymous »

У меня есть 3D -ковариационная матрица, Sigma , с формой (n_samples, 2, 2) .
вызовы scipy.stats.multivariate_normal.logpdf () с этой матрицей Covariance wyields следующую ошибку:

Массив 'cov' должен быть не более двухмерным, но cov.ndim
= 3 < /p>
< /blockquote>
Когда я осматриваю исходный код, я вижу следующее: < /p>

Код: Выделить всё

def _logpdf(self, x, mean, cov_object):
"""Log of the multivariate normal probability density function.

Parameters
----------
x : ndarray
Points at which to evaluate the log of the probability
density function
mean : ndarray
Mean of the distribution
cov_object : Covariance
An object representing the Covariance matrix

Notes
-----
As this function does no argument checking, it should not be
called directly; use 'logpdf' instead.

"""
log_det_cov, rank = cov_object.log_pdet, cov_object.rank
dev = x - mean
if dev.ndim > 1:
log_det_cov = log_det_cov[..., np.newaxis]
rank = rank[..., np.newaxis]
maha = np.sum(np.square(cov_object.whiten(dev)), axis=-1)
return -0.5 * (rank * _LOG_2PI + log_det_cov + maha)
Очевидно, Scipy использует ковариацию -object в своем расчете. Объект не может быть создан непосредственно и использует один из заводских методов (например, Covariance.from_diagonal ).
Моя идея состояла в том, чтобы написать пользовательские функции для log_pdet () , rank () и отбелить () , которые являются совместимыми с 3d -формой и используют эти для вычисления. Функции рассчитываются по -разному в зависимости от метода Factorty: < /p>

Код: Выделить всё

# CovViaPrecision
def _whiten(self, x):
return x @ self._chol_P

# CovViaDiagonal
def _whiten(self, x):
return _dot_diag(x, self._LP)

# CovViaCholesky
def _whiten(self, x):
return linalg.solve_triangular(self._factor, x.T, lower=True).T
Какой фабричный метод используется в scipy.stats.multivariate_normal.logpdf () ? Как будут выглядеть мои новые определенные функции?

Подробнее здесь: https://stackoverflow.com/questions/796 ... nce-matrix
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»