scipy.stats.Mixture.
logentropy#
- Mixture.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
。
- 回傳:
- out陣列
log-entropy。
註解
如果分佈的熵為負數,則 log-entropy 為複數,虛部為 \(\pi\)。為了保持一致性,無論虛部的值為何,此函數的結果始終具有複數 dtype。
參考文獻
[1]範例
使用所需的參數實例化分佈
>>> 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))