scipy.stats.Normal.

logentropy#

Нормальный.logentropy(*, метод=None)[источник]#

Логарифм дифференциальной энтропии

В терминах функции плотности вероятности \(f(x)\) и поддержка \(\chi\), дифференциальная энтропия (или просто «энтропия») непрерывной случайной величины \(X\) равен:

\[h(X) = - \int_{\chi} f(x) \log f(x) dx\]

Определение для дискретной случайной величины аналогично, с заменой PDF на PMF и суммированием по носителю вместо интеграла.

logentropy вычисляет логарифм дифференциальной энтропии (“лог-энтропия”), \(\log(h(X))\), но он может быть численно более выгодным по сравнению с наивной реализацией (вычисление \(h(X)\) затем взятие логарифма).

Параметры:
метод{None, 'formula', 'logexp', 'quadrature}

Стратегия, используемая для оценки лог-энтропии. По умолчанию (None), инфраструктура выбирает между следующими вариантами, перечисленными в порядке приоритета.

  • 'formula': использование формулы для самой лог-энтропии

  • 'logexp': оценить энтропию и взять логарифм

  • 'quadrature': численно логарифмически интегрировать (или, в дискретном случае, логарифмически суммировать) логарифм интегранда (сумманда) энтропии

Не все метод опции доступны для всех распределений. Если выбранная метод недоступен, NotImplementedError будет вызвано исключение.

Возвращает:
выходмассив

Лог-энтропия.

Смотрите также

entropy
logpdf

Примечания

Дифференциальная энтропия непрерывного распределения может быть отрицательной. В этом случае логарифм энтропии является комплексным с мнимой частью \(\pi\). Для согласованности результат этой функции всегда имеет комплексный тип данных, независимо от значения мнимой части.

Ссылки

[1]

Дифференциальная энтропия, Википедия, https://en.wikipedia.org/wiki/Differential_entropy

Примеры

любым из целых чисел в полуоткрытом диапазоне

>>> import numpy as np
>>> from scipy import stats
>>> X = stats.Uniform(a=-1., b=1.)

Вычислить лог-энтропию:

>>> X.logentropy()
(-0.3665129205816642+0j)
>>> np.allclose(np.exp(X.logentropy()), X.entropy())
True

Для случайной величины с отрицательной энтропией логарифм энтропии имеет мнимую часть, равную np.pi.

>>> X = stats.Uniform(a=-.1, b=.1)
>>> X.entropy(), X.logentropy()
(-1.6094379124341007, (0.4758849953271105+3.141592653589793j))