Releases: JuliaDynamics/ComplexityMeasures.jl
Releases · JuliaDynamics/ComplexityMeasures.jl
v3.2.0
v3.1.2
ComplexityMeasures v3.1.2
Merged pull requests:
v3.1.1
ComplexityMeasures v3.1.1
v3.1.0
ComplexityMeasures v3.1.0
Merged pull requests:
Closed issues:
- Nicer default printing for estimators and other types (#286)
v3.0.5
v3.0.4
v3.0.3
ComplexityMeasures v3.0.3
Merged pull requests:
Closed issues:
eachindex
forProbabilities
is ambiguous (#369)
v3.0.2
v3.0.1
v3.0.0
ComplexityMeasures v3.0.0
3.0
ComplexityMeasures.jl has undergone major overhaul of the internal design.
Additionally, a large number of exported names have been renamed. Despite the major
version change, this release does not contain strictly breaking changes. Instead,
deprecations have been put in place everywhere.
The main renames and re-thinking of the library design are:
- We have renamed the concept of "entropy" to "information measure", and
entropy
has
been renamed toinformation
. We consider as "information measures" anything that is
a functional of probability mass/density functions, and these are estimated using
DiscreteInfoEstimator
s orDifferentialInfoEstimator
s. - We realized that types like
ValueBinning
,OrdinalPatterns
andDispersion
don't
actually represent probabilities estimators, but outcome spaces. To convey this
fact, from 3.0, these types are subtypes ofOutcomeSpace
. - Subtypes of
ProbabilitiesEstimator
s now represent distinct ways of estimating
probabilities from counts or pseudo-counts over someOutcomeSpace
.
RelativeAmount
is the simplest (and default) probabilities estimator.
BayesianRegularization
,Shrinkage
andAddConstant
are some more complex
probabilities estimators.
The online documentation now comes with a tutorial that nicely summarizes these new
concepts/changes.
New library features
- New dedicated counting interface for mapping observations into outcome counts. See
thecounts_and_outcomes
function andCounts
struct. - New function
allprobabilities
that is likeprobabilities
but also includes 0
entries for possible outcomes that were not present in the data. - New extropy definitions that count as information measures (and thus can be given to
information
):ShannonExtropy
,RenyiExtropy
,TsallisExtropy
. StatisticalComplexity
is now compatible with any normalizableInformationMeasure
(previouslyEntropyDefinition
).StatisticalComplexity
can now estimate probabilities using any combination of
ProbabilitiesEstimator
andOutcomeSpace
.- Add the 1976 Lempel-Ziv complexity measure (
LempelZiv76
). - New entropy definition: identification entropy (
Identification
). - Minor documentation fixes.
GaussianCDFEncoding
now can be used with vector-valued inputs.- New
LeonenkoProzantoSavani
differential entropy estimator. Works withShannon
,
Renyi
andTsallis
entropies. - New encodings available:
RelativeMeanEncoding
,RelativeFirstDifferenceEncoding
,
UniqueElementsEncoding
andCombinationEncoding
(the latter combines multiple
encodings). - New
codify
function that encodes sequences of observations (vectors or state space
sets) into discrete symbol sequences.
Renaming (deprecated)
SymbolicPermutation
is nowOrdinalPatterns
.SymbolicWeightedPermutation
is nowWeightedOrdinalPatterns
.SymbolicAmplitudeAwarePermutation
is nowAmplitudeAwareOrdinalPatterns
.SpatialSymbolicPermutation
is nowSpatialOrdinalPatterns
.
Other deprecations
- Passing
m
as a positional or keyword argument to ordinal pattern outcome space or
encoding is deprecated. It is given as a type parameter now, e.g.,
OrdinalPatterns{m}(...)
instead ofOrdinalPatterns(m = ..., ...)
.
Bug fixes
outcome_space
forDispersion
now correctly returns the all possible sorted
outcomes (as promised by theoutcome_space
docstring).decode
withGaussianCDFEncoding
now correctly returns only the left-sides of the
[0, 1]
subintervals, and always returns the decoded symbol as aVector{SVector}
(consistent withRectangularBinEncoding
), regardless of whether the input is a scalar
or a vector.- Using the
TransferOperator
outcome space with aRectangularBinning
or
FixedRectangularBinning
withprecise == false
will now trigger a warning.
This was previously causing random bugs because some bins were encoded as-1
,
indicating that the point is outside the binning - even if it wasn't. WaveletOverlap
now computes probabilities (relative energies) over the correct number
of transform levels. Previously, the *scaling *coefficients for the max transform
level were incorrectly included, as an extra set of coefficients in addition to the
(correctly included) wavelet coefficients. This caused a lot of energy to be
concentrated at low frequencies, even for high-frequency signals. Thus the
correspondingProbabilities
had an extra element which in many cases dominated the
rest of the distribution.
Merged pull requests:
- Separate
OutcomeSpace
andProbabilitiesEstimator
(#285) (@kahaaga) - (merge small doc work of Datseris into PR#285 (#287) (@Datseris)
- Rename symbolic outcome spaces (#291) (@kahaaga)
- Electronic entropy (#293) (@kahaaga)
- High level tutorial and resolution of information vs entropy (#294) (@Datseris)
- Logarithm for differential entropy estimators from the definition, not the estimator itself (#298) (@kahaaga)
- More encodings (#299) (@kahaaga)
- Use DocumenterCitations.jl for references (#302) (@kahaaga)
- Generic dispatch for
probabilities
(#305) (@kahaaga) - Remove
StatsBase
dependency (#308) (@kahaaga) - Leonenko-Prozano-Savani differential estimator for
Shannon
,Renyi
andTsallis
entropies (#310) (@kahaaga) - decode ::Integer issue fixed (#315) (@Jay-sanjay)
- WIP: Decouple
ProbabilitiesEstimator
fromOutcomeSpace
s (#316) (@kahaaga) - CompatHelper: bump compat for Wavelets to 0.10, (keep existing compat) (#318) (@github-actions[bot])
- Added test cases in curado.jl (#319) (@Jay-sanjay)
- increasing coverage for : (#320) (@Jay-sanjay)
- Binning restrictions to Float64 (#322) (@Jay-sanjay)
- Minimalistic printing for
Counts
andProbabilities
(#324) (@kahaaga) - CompatHelper: add new compat entry for StatsBase at version 0.34, (keep existing compat) (#327) (@github-actions[bot])
- Warn when
binning.precise == false
forTransferOperator
(#328) (@kahaaga) - add new
codify
function to docs (#329) (@Datseris) - Highlight the name "symbolization" more (#330) (@Datseris)
- simplify docstring of codify (#331) (@Datseris)
- Improve docstring of encode/decode (#332) (@Datseris)
- Deprecate passing
m
as keyword in ordinal pattern stuff (#333) (@Datseris) - CompatHelper: add new compat entry for Statistics at version 1, (keep existing compat) (#335) (@github-actions[bot])
- Finish devdocs, deprecations, and exported names (#336) (@Datseris)
- Reproducibility for
TransferOperator
(#340) (@kahaaga) - Remove DimensionalData.jl dep (#341) (@kahaaga)
- Finish tutorial and API reference for v3 (#347) (@Datseris)
- Pretty printing (#351) (@kahaaga)
- Simplify outcomes method (#352) (@kahaaga)
- Refactoring and fixes for the
tutorial
branch (#354) (@kahaaga) - Add functionality clarifying method to codify (#359) (@rusandris)
- Move input check for
codify
with 1-dimensional state space sets and ordinal outcome spaces (#360) (@kahaaga) - Finish changelog for v3 (#361) (@Datseris)
- Remove BenchmarkTools.jl dep that snuck in (#362) (@kahaaga)
Closed issues:
- Improve the tests! (aim for 90% coverage) (#85)
- Electronic, aka Fermi-Dirac entropy (#148)
- Binning unecessarily restricts to Float64 (#150)
- Separate documentation page for
TransferOperator
(#192) - Variance/bias-corrected entropy estimators (#237)
- Implementing different estimators for
Probabilities
too (#280) - Need a release with
allprobabilities
. (#282) - Allow using
entropy
without an estimator. (#283) - Was information measure a mistake? (#284)
- Fix some TODOs for
Shrinkage
estimator (#288) - Rename SymbolicPermutation...? (#289)
- Add changelog entry for
WaveletOverlap
bug fix for next release (#292) Kraskov
estimator does not have adefinition
field. (#296)- Clean up source code of
probabilities
: should just dispatch oncount
; see discussion (#297) decode
forGaussianCDFEncoding
andRectangularBinEncoding
return inconsistent values (#300)- Use DocumenterCitations.jl (#301)
- Merger of encoding and outcome spaces (#306)
- Deprecate passing
m
as keyword; use type parameter in cases where embeddings occur (#309) decode
should work generically with any typeI <: Integer
, not justInt64
(#311)- Encoding/outcome space for categorical data (#312)
- Less strict subtyping in
ProbabilitiesEstimator
s (#313) - Add
Counts
type, and allow anyAbstractArray
type for bothCounts
andProbabilities
(#314) - Formatting of
Counts
andProbabilities
(#317) - Finalize the syntax for
information
(#325) - Remove DimensionalData.jl dependency (#326)
- Add
rng
argument toTransferOperator
and the underlying functions - (#339) - The dev docs error (#343)
- Pretty printing for
Counts
andProbabilities
(#344) outcomes
method is unecessarily complicated (#345)- Compilation warnings: `` (#346)
- The last line in the example of the
information
function errors (#355) - Release 3.0? (#357)
- Confusing error message when using OrdinalPatterns on univariate data (#358)