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。

參見

entropy
logpdf

註解

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

參考文獻

範例

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

>>> 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))