Skip to content

Releases: JuliaDynamics/ComplexityMeasures.jl

v3.2.0

15 Jan 16:52
76f37be
Compare
Choose a tag to compare

ComplexityMeasures v3.2.0

Diff since v3.1.2

Merged pull requests:

Closed issues:

  • missing_probabilities (#388)

v3.1.2

14 Jan 13:11
dc0237b
Compare
Choose a tag to compare

ComplexityMeasures v3.1.2

Diff since v3.1.1

Merged pull requests:

v3.1.1

14 Jan 10:15
Compare
Choose a tag to compare

ComplexityMeasures v3.1.1

Diff since v3.1.0

v3.1.0

13 Jan 23:42
2793ac8
Compare
Choose a tag to compare

ComplexityMeasures v3.1.0

Diff since v3.0.5

Merged pull requests:

Closed issues:

  • Nicer default printing for estimators and other types (#286)

v3.0.5

13 Jan 09:51
c82bc30
Compare
Choose a tag to compare

ComplexityMeasures v3.0.5

Diff since v3.0.4

Merged pull requests:

Closed issues:

  • Docstring and implementation for Statistical Complexity is wrong (#368)

v3.0.4

12 Jan 16:08
554b779
Compare
Choose a tag to compare

ComplexityMeasures v3.0.4

Diff since v3.0.3

Merged pull requests:

Closed issues:

  • Missing deprecation for OrdinalPatterns{m}(; τ) (#372)

v3.0.3

11 Jan 00:47
3bbfe0b
Compare
Choose a tag to compare

ComplexityMeasures v3.0.3

Diff since v3.0.2

Merged pull requests:

  • Fix method ambiguity and add tests for Base array extensions (#371) (@kahaaga)

Closed issues:

  • eachindex for Probabilities is ambiguous (#369)

v3.0.2

10 Jan 17:05
1ebda7b
Compare
Choose a tag to compare

ComplexityMeasures v3.0.2

Diff since v3.0.1

Merged pull requests:

  • Add missing method with q first for deprecated genentropy (#367) (@Datseris)

Closed issues:

  • genentropy is broken (#366)

v3.0.1

09 Jan 14:13
2c664de
Compare
Choose a tag to compare

ComplexityMeasures v3.0.1

Diff since v3.0.0

Merged pull requests:

Closed issues:

  • Announcement post draft (#363)
  • Dep compatibility issue between ComplexityMeasures (3.0.0) and DynamicalSystems (3.2.3). (#365)

v3.0.0

08 Jan 23:33
3e05a5d
Compare
Choose a tag to compare

ComplexityMeasures v3.0.0

Diff since v2.8.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 to information. We consider as "information measures" anything that is
    a functional of probability mass/density functions, and these are estimated using
    DiscreteInfoEstimators or DifferentialInfoEstimators.
  • We realized that types like ValueBinning, OrdinalPatterns and Dispersion don't
    actually represent probabilities estimators, but outcome spaces. To convey this
    fact, from 3.0, these types are subtypes of OutcomeSpace.
  • Subtypes of ProbabilitiesEstimators now represent distinct ways of estimating
    probabilities from counts or pseudo-counts over some OutcomeSpace.
    RelativeAmount is the simplest (and default) probabilities estimator.
    BayesianRegularization, Shrinkage and AddConstant 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
    the counts_and_outcomes function and Counts struct.
  • New function allprobabilities that is like probabilities 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 normalizable InformationMeasure
    (previously EntropyDefinition).
  • StatisticalComplexity can now estimate probabilities using any combination of
    ProbabilitiesEstimator and OutcomeSpace.
  • 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 with Shannon,
    Renyi and Tsallis entropies.
  • New encodings available: RelativeMeanEncoding, RelativeFirstDifferenceEncoding,
    UniqueElementsEncoding and CombinationEncoding (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 now OrdinalPatterns.
  • SymbolicWeightedPermutation is now WeightedOrdinalPatterns.
  • SymbolicAmplitudeAwarePermutation is now AmplitudeAwareOrdinalPatterns.
  • SpatialSymbolicPermutation is now SpatialOrdinalPatterns.

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 of OrdinalPatterns(m = ..., ...).

Bug fixes

  • outcome_space for Dispersion now correctly returns the all possible sorted
    outcomes (as promised by the outcome_space docstring).
  • decode with GaussianCDFEncoding now correctly returns only the left-sides of the
    [0, 1] subintervals, and always returns the decoded symbol as a Vector{SVector}
    (consistent with RectangularBinEncoding), regardless of whether the input is a scalar
    or a vector.
  • Using the TransferOperator outcome space with a RectangularBinning or
    FixedRectangularBinning with precise == 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
    corresponding Probabilities had an extra element which in many cases dominated the
    rest of the distribution.

Merged pull requests:

  • Separate OutcomeSpace and ProbabilitiesEstimator (#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 and Tsallis entropies (#310) (@kahaaga)
  • decode ::Integer issue fixed (#315) (@Jay-sanjay)
  • WIP: Decouple ProbabilitiesEstimator from OutcomeSpaces (#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 and Probabilities (#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 for TransferOperator (#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 a definition field. (#296)
  • Clean up source code of probabilities: should just dispatch on count; see discussion (#297)
  • decode for GaussianCDFEncoding and RectangularBinEncoding 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 type I <: Integer, not just Int64 (#311)
  • Encoding/outcome space for categorical data (#312)
  • Less strict subtyping in ProbabilitiesEstimators (#313)
  • Add Counts type, and allow any AbstractArray type for both Counts and Probabilities (#314)
  • Formatting of Counts and Probabilities (#317)
  • Finalize the syntax for information (#325)
  • Remove DimensionalData.jl dependency (#326)
  • Add rng argument to TransferOperator and the underlying functions - (#339)
  • The dev docs error (#343)
  • Pretty printing for Counts and Probabilities (#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)