Code Monkey home page Code Monkey logo

Comments (2)

YannCabanes avatar YannCabanes commented on June 10, 2024

Hello @fkiraly,
I have discussed this issue with @rtavenar: it is not a bug and it corresponds to the documentation (which we will make clearer).

The functions taking 3D arrays as inputs are the functions: cdist_*
For example in the docstring of the function cdist_dtw, there is the input parameter:

dataset1 : array-like
    A dataset of time series

Functions of the form cdist_* can also accept 1D or 2D arrays when they use:
dataset1 = to_time_series_dataset(dataset1)

The other metric functions usually take 2D arrays as inputs.
For example, in the docstring of the function lcss, there is the input parameter:

s1
    A time series.

By default time series should be 2D arrays, some metric functions also accept 1D arrays when they use:
s1 = to_time_series(s1)

To make it cleared, I will specify in the docstrings of the functions the possible shapes of the input arrays in the PR #486.

For example:

s1 : array-like, shape=(sz1, d) or (sz1,)
    A time series. If shape is (sz1,), the time series is assumed to be univariate.

Or:

dataset1 : array-like, shape=(n_ts, sz, d) or (n_ts, sz) or (sz,)
    A dataset of time series. If shape is (n_ts, sz), the dataset is composed of univariate time series. 
    If shape is (sz,), the dataset is a composed of a unique univariate time series.

from tslearn.

fkiraly avatar fkiraly commented on June 10, 2024

I see, thanks for clarifying. The lack of specificity in the docstrings did cause some headache and trial-and-error on our side...

I would suggest in the docstrings to state clearly, in all 3 cases (1D, 2D, 3D), which index corresponds to instance index, time index, variable index.

Feel free to close this issue then.

PS: if I were to design the interface, I would add a default upcast to 3D to every distance function, and have only one single interface point. For deprecation period, you can add 3D to the 2D functions and a warning.
Why: simpler for the user to learn just one generic interface, simpler to maintain and test (just loop over the entire list of distances)

from tslearn.

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.