-
Notifications
You must be signed in to change notification settings - Fork 76
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
ENH: Add sparse middle-out reconciliation via MiddleOutSparse
#281
ENH: Add sparse middle-out reconciliation via MiddleOutSparse
#281
Conversation
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work, thanks! A few minor comments, mainly I think it's good that we lift all the Sparse methods to also include all the show_doc methods, so that it will included in the generation of the API reference for the docs. Wdyt?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, again great work! Looking forward to seeing what you're up to next :)
I think after all your work it would be awesome if we update the docs and have a tutorial showing the nice sparse methods that you implemented. Let me know if you'd like to work on that, otherwise I'll pick that up sometime.
Thank you for your reviews and great suggestions, Olivier! I would be happy to both update the docs and create a tutorial for the sparse methods. |
Great! Let's do that in another PR, I'll merge this one then. |
This PR adds a middle-out reconciliation class called$S$ , to significantly reduce the wall time for reconciling large hierarchical structures from a "middle" level, which now take at least $99.6 \%$ less time to reconcile.
MiddleOutSparse
for sparse "summing" matrices,BottomUpSparse
and allocates the reconciled point forecasts in a memory-efficient manner.tags
argument only if required for out-of-sample disaggregation methods, i.e. forecast proportions.tags
toNone
for in-sample methods.tags
argument for the subgraph in the out-of-sample case.TopDownSparse
for each cut node and allocates the reconciled point forecasts in a memory-efficient manner.MiddleOutSparse
and equivalence withMiddleOut
up to the machine epsilon of a double.MiddleOut
MiddleOutSparse
* This was cancelled after 2 hours. 😴