medpy.metric.histogram.kullback_leibler#
- medpy.metric.histogram.kullback_leibler(h1, h2)[source]#
Kullback-Leibler divergence.
Compute how inefficient it would to be code one histogram into another. Actually computes \(\frac{d_{KL}(h1, h2) + d_{KL}(h2, h1)}{2}\) to achieve symmetry.
The Kullback-Leibler divergence between two histograms \(H\) and \(H'\) of size \(m\) is defined as:
\[d_{KL}(H, H') = \sum_{m=1}^M H_m\log\frac{H_m}{H'_m}\]Attributes:
quasimetric (but made symetric)
Attributes for normalized histograms:
\(d(H, H')\in[0, \infty)\)
\(d(H, H) = 0\)
\(d(H, H') = d(H', H)\)
Attributes for not-normalized histograms:
not applicable
Attributes for not-equal histograms:
not applicable
- Parameters:
- h1sequence
The first histogram, where h1[i] > 0 for any i such that h2[i] > 0, normalized.
- h2sequence
The second histogram, where h2[i] > 0 for any i such that h1[i] > 0, normalized, same bins as
h1
.
- Returns:
- kullback_leiblerfloat
Kullback-Leibler divergence.