- added
ndd
to the anacondaconda-forge
channel.
- fixed
setuptools
imports insetup.py
entropy
function: removed thezk
argument- the signature of the
entropy
function is:entropy(nk, k=None, estimator='NSB', return_std=False)
- the
entropy
function handles mappings and generators as input counts.
- fix Counts.fit()
- if argument
k
is omitted, theentropy
function will guess a reasonable alphabet size and select the best estimator for the sampling regime.
- the
entropy
function takes frequency counts (multiplicities) as input via thezk
optional argument - renamed
pk
tonk
- the signature of the entropy function is:
entropy(nk, k=None, zk=None, estimator='NSB', return_std=False)
- integration for large cardinalities
- full Bayesian error estimate (from direct computation of the posterior variance of the entropy)
- rename version.json to package.json
- check_pk: elements of input counts array are converted to int32 with no check
- entropy() function: NSB estimator needs cardinality
k
as input - entropy() function: non-flat arrays are valid input counts
- robust integration range
- fix coinformation function for combinations of features
- fix from_data for scalar inputs
For the NSB integration:
- Find the saddle point maximizing p(alpha | data)
- Set the integration range at 4 standard deviations around the saddle point
- If the standard deviation is too small, return the entropy posterior mean at the saddle point
MillerMadow
estimator classAsymptoticNSB
estimator classGrassberger
estimator class
The signature of the entropy function has been changed to allow arbitrary entropy estimators. The new signature is
entropy(pk, k=None, estimator='NSB', return_std=False)
Check ndd.entropy_estimators
for the available estimators.
For methods/functions working on data matrices:
the default input is a n-by-p 2D array (n samples from p discrete
variables, with different samples on different rows).
Since release 1.3, the default was a transposed (p-by-n) data matrix.
The behavior of functions taking frequency counts as input
(e.g. the ndd.entropy
function) is unchanged.
- builds on Windows (with MinGW-W64)
- builds on MacOS (thanks to https://github.com/ccattuto)
ndd.kullback_leibler_divergence
r
(length of combinations) defaults to None
- input data arrays must be p-by-n 2D ndarrays containing
n samples from p discrete variables. This affects all methods/functions
working directly on data:
- histogram
- from_data
- interaction_information
- coinformation
- mutual_information
- conditional_entropy
- fixed conditional_entropy function
- histogram:
axis
should be None is data matrix is tarnsposed.
ndd.from_data
ndd.mutual_information
ndd.conditional_information
ndd.interaction_information
ndd.coinformation
- Python3 only
- fixed NumericError for valid entropy estimation
jensen_shannnon_divergence()
function.estimators
module.- Entropy, KLDivergence and JSDivergence estimators.
- entropy() signature is now:
entropy(pk, k=None, alpha=None, plugin=False, return_std=False)
- Entropy class.
- from_data() returns an estimate from a data samples
- histogram(): remove unique elements of array as optional output
- histogram(): takes the
axis
andr
optional args
- entropy(): removed the (broken) function for estimator selection
- entropy(): renamed argument 'dist' to 'plugin'
- entropy(): renamed argument 'a' to 'alpha'
- fix missing README.rst
- handle input counts arrays > 1D (always flatten to 1D)
- handle single-class case
- require numpy >= 1.9
- now a Python package
- binary extension are installed in the package dir
- version.json
- version.py
- numerical integration is stable over large ranges of conditions (large k and/or large n)
- raise an error if estimate is NaN
- statndard implementation for ML estimator
- preliminary notebooks
- Manifest.in
- Changed
return_error=
toreturn_std=
as key in the kwargs of ndd.entropy() - Renamed
CHANGES.md
toCHANGELOG.md
- Check for NumPy version before setup