Code Monkey home page Code Monkey logo

Comments (9)

Datseris avatar Datseris commented on June 29, 2024

Also, forgot to mention my other comments on why using DD.jl is a bad idea unless absolutely necessary:

But you should also know that I had headaches with ClimateBase.jl with DimensionalData.jl getting breaking releases all the time (version 0.25 means 24 breaking releases if you think about it). I have stopped updating ClimateBase.jl due to this headache.

from complexitymeasures.jl.

Datseris avatar Datseris commented on June 29, 2024

@kahaaga I've just noticed another problem.

Previously, it was possible to optimize counts or probabilities so that they do not compute outcomes. E.g., here

function counts(encoding::RectangularBinEncoding, x)
    cts, bins = fasthist(encoding, x) # bins are integers here
    unique!(bins) # `bins` is already sorted from `frequencies!`
    # Here we transform the cartesian coordinate based bins into data unit bins:
    outcomes = map(b -> decode(encoding, b), bins)
    return Counts(cts, (outcomes,))
end

we could avoid computing the outcomes before the move to dimensionaldata.jl was made. Now, it is no longer possible, and this loss of optimization will be forever a burden, and can become a large burden if you have to run 100000s of timeseries.

from complexitymeasures.jl.

kahaaga avatar kahaaga commented on June 29, 2024

What about having the following?

function counts_and_outcomes(encoding::RectangularBinEncoding, x)
    cts, bins = fasthist(encoding, x) # bins are integers here
    unique!(bins) # `bins` is already sorted from `frequencies!`
    # Here we transform the cartesian coordinate based bins into data unit bins:
    outcomes = map(b -> decode(encoding, b), bins)
    return Counts(cts, (outcomes,))
end
function counts(encoding::RectangularBinEncoding, x)
    cts, bins = fasthist(encoding, x) # bins are integers here
    unique!(bins) # `bins` is already sorted from `frequencies!`
    return Counts(cts)
end

The first signature explicitly computes the outcomes, the second doesn't.

from complexitymeasures.jl.

Datseris avatar Datseris commented on June 29, 2024

What would the display of this be? wouldn't it error at display? since it doesn't have a dimension to display in the grayed out marginals...?

from complexitymeasures.jl.

Datseris avatar Datseris commented on June 29, 2024

Also this is a breaking change to the call signature, so anyways I would say I am against it. probs_and_outcomes returns a decomposable tuple of the vector of probabilities and the vector of outcomes.

from complexitymeasures.jl.

kahaaga avatar kahaaga commented on June 29, 2024

What would the display of this be? wouldn't it error at display? since it doesn't have a dimension to display in the grayed out marginals...?

We can just do a quick check to see if marginals are present or not, and print them if they are present.

from complexitymeasures.jl.

kahaaga avatar kahaaga commented on June 29, 2024

Also this is a breaking change to the call signature, so anyways I would say I am against it. probs_and_outcomes returns a decomposable tuple of the vector of probabilities and the vector of outcomes.

It is possible to do both: return a Counts that has the outcomes on the marginals, and explicitly return it. This has no extra cost, since the outcomes are already computed in counts_and_outcomes/probabilities_and_outcomes

from complexitymeasures.jl.

Datseris avatar Datseris commented on June 29, 2024

@kahaaga since you coded the original DimensionalData.jl code, could you please be the one that tackles this issue? It's one of the final 2 blockers for the next release of ComplexityMeasures.jl.

from complexitymeasures.jl.

kahaaga avatar kahaaga commented on June 29, 2024

since you coded the original DimensionalData.jl code, could you please be the one that tackles this issue? It's one of the final 2 blockers for the next release of ComplexityMeasures.jl.

I'm on it. It'll probably take a few days, because it is a bit involved to get the pretty printing right.

from complexitymeasures.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.