Giter Club home page Giter Club logo

Comments (3)

JavierEscobarOrtiz avatar JavierEscobarOrtiz commented on May 23, 2024

Hello Kishan,

As it is now, the ForecasterAutoregMultiVariate is only trained in one level (series 1 or series 2) and creates one model per step (direct approach). In the figure, let's say that if you specify level = 'Series 1' when creating the Forecaster, it will only use the training matrix at the top.

forecaster_multivariate_train_matrix_diagram

Training a single model across all variables as in ForecasterMultiseries is not possible because the training matrix grows horizontally (not vertically as in the MultiSeries approach) and you will have multiple columns to use as response variables.

Best,
Javi

from skforecast.

JoaquinAmatRodrigo avatar JoaquinAmatRodrigo commented on May 23, 2024

Hi,
I think the type of forecaster @KishManani mentions can be created with two approaches:

  1. Using a multi-output regressor (multi-target) from sklearn.multioutput

  2. Using a regressor that natively allows multioutput (multi-target)

The second approach is the one where neural network architectures can help. In the next releases (0.12.0) we will add a new forecaster ForecasterRNN that will allow using Keras models within the skforecast framework, including the multi-series-multistep scenario. We are currently writing the documentation, but the code is already available.

@JavierEscobarOrtiz and @fernando-carazo Let's investigate this further to see if we can extend the modeling approaches.

from skforecast.

KishManani avatar KishManani commented on May 23, 2024

Hi @JavierEscobarOrtiz and @JoaquinAmatRodrigo! I'm referring to something a bit simpler here. In ForecasterMultiSeries the time series ID is used as a feature to distinguish between time series. Could it be useful to use something similar in ForecasterMultivariate which would allow training a single model for all the series - here is an example of what the training matrix would look like (prior to encoding the time series id):

image

I've not tried this before but am curious to know what you think! Perhaps a tree-based model could effectively use the time series id in this case to partition the data into series 1 and series 2 early on in the tree and then learn separate behaviours further down the tree - just thinking out loud here. Linear regression would likely struggle for something like this.

Thanks,
Kishan

from skforecast.

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.