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。
筆記
如果分佈的熵為負數,則 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))