Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement river forecasting as many to many prediction #69

Open
kulbachcedric opened this issue Nov 19, 2022 · 4 comments
Open

Implement river forecasting as many to many prediction #69

kulbachcedric opened this issue Nov 19, 2022 · 4 comments
Labels
enhancement New feature or request

Comments

@kulbachcedric
Copy link
Collaborator

No description provided.

@kulbachcedric kulbachcedric added the enhancement New feature or request label Nov 19, 2022
@jabowery
Copy link

jabowery commented Feb 6, 2023

When you say "many to many" does this mean river and/or deep-river does not, yet, permit one to have more than one feature on output?

PS: I've spent probably 4 or 5 hours trying to figure out if river and/or deep-river can have more than one feature on the output. None of the introductory documents say there is this limitation. If there is this limitation then please state it in the introduction if not the FAQ.

@kulbachcedric
Copy link
Collaborator Author

Hello @jabowery
the forecaster module is especially interesting for lstm modules as the support "many to many" . Hopefully they will be included within the next release!

@jabowery
Copy link

jabowery commented Feb 6, 2023

Terminology can be such a nightmare without very careful documentation.

Let's distinguish "many" as in "many features in a single stream step" as opposed to "many stream steps with a single feature per stream step". This distinction is absolutely critical for any documentation regarding "streams".

For example, there is another term called "sequence-to-sequence" which is equivalent to "many stream steps with a single feature per stream step". e.g. the "sequence" of characters: "Now is the time for all good men to come to the aid of their party." "to-sequence" of characters: "Jetzt ist es an der Zeit, dass alle guten Männer ihrer Partei zu Hilfe kommen."

I'm not asking about that sense of "many". (There is an additional terminology confusion regarding "window" as encompassing "many" stream steps.)

The sense of "many features" I'm asking about is illustrated by the fact that all of the deep-river example code I've seen has data of the following form:

stream(window(vector (dictionary))) -> stream(scalar)

However, the most general case of scientific model is the dynamical system in which the state of the universe is taken as a vector and yields the next state (the predict the next time step) of the universe. The "predict-next-time-step" task is called the "flow" of the dynamical system.

See why I expected the next stream step output of "River" to output a single vector(dictionary), even if not of the same dimensions as the input vector(dictionary)?

Does it presently support that some how? e.g. can a "loss_fn" take in a vector(dictionary) for both y_pred and y_true? If not, is it planned?

@MaxHalford
Copy link
Member

Hey @jabowery. The answer is that no we don't support dynamical systems. River (and its deep counterpart) are focused on typical machine learning tasks, such as regression and classification. We don't do state-space modeling and Kalman filters. It's not currently on the roadmap.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants