scipy.stats.Uniform.

logentropy#

Uniform.logentropy(*, method=None)[原始碼]#

微分熵的對數

以機率密度函數 \(f(x)\) 和支撐集 \(\chi\) 表示,隨機變數 \(X\) 的微分熵(或簡稱「熵」)為

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

logentropy 計算微分熵的對數(「log-entropy」),\(log(h(X))\),但與樸素實作(計算 \(h(X)\) 然後取對數)相比,它在數值上可能更有利。

參數:
method{None, ‘formula’, ‘logexp’, ‘quadrature}

用於評估 log-entropy 的策略。預設值 (None) 時,基礎架構會從以下選項中選擇,並依優先順序排列。

  • 'formula': 使用公式計算 log-entropy 本身

  • 'logexp': 評估熵並取對數

  • 'quadrature': 以數值方式對熵被積函數的對數進行積分

並非所有分佈都提供所有 method 選項。如果選定的 method 不可用,將會引發 NotImplementedError

返回:
outarray

log-entropy。

參見

entropy
logpdf

筆記

如果分佈的熵為負數,則 log-entropy 是複數,虛部為 \(\pi\)。為了保持一致性,無論虛部的值為何,此函數的結果始終具有複數 dtype。

參考文獻

[1]

微分熵,維基百科https://en.wikipedia.org/wiki/Differential_entropy

範例

使用所需的參數實例化分佈

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

評估 log-entropy

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

對於具有負熵的隨機變數,log-entropy 的虛部等於 np.pi

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