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] Multioutput capability for all time series classifiers and regressors, broadcasting and tag #5408
Conversation
y
in time series classifiers and regressors #5182
…oadcast merge with broadcast
It has been a while since I last worked on this issue, I would like to get a quick clarification before starting again.
|
Yes - I would recommend to start with no.2 to get the framework ready, and only then add multioutput support for some classifiers, e.g., the neural networks. That way, no.1 will also be a test case for the framework extensions in no.2. |
Kindly review the code and help me with the following:
Once I am done with the above two, I shall continue with this. @fkiraly |
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!
This looks like it works almost.
There's something upset with the tags, can you check the tests?
Also, non-blocking, do you think we can avoid introducing an "instance" copy of every method, without making the code less DRY? I don't see it, but it might be worth thinking briefly about this.
I shall look into these. |
Well, if they break, they should not get the |
y
in time series classifiers and regressors #5182There 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.
All updated now. I removed the tags from classifiers, we can do that separately.
This PR relaxes the `pandas` based `Table` mtype-s to also allow object `dtype`-s. The reason for this is to allow programmatic support of type checking of `y` in time series classification and regression, and since the current implicitly defined interface supported object (e.g., string) `dtype`-s for classification outputs. Also required for the multioutput extension in #5408.
…ssion (#5662) Separating refactor and cleanup of #5408 into a new PR. This PR introduces an intemediate base class for panel tasks, including classification and regression. The intermediate class contains code that is otherwise duplicated across the descendant classes `BaseClassifier` and `BaseRegressor`. The multiplication has become especially apparent in adding multioutput functionality to classifiers and regressor. Depends on #5408 which should be merged first.
…eClassifier` (#5654) This PR removes an instance of problematic private coupling of `IndividualBOSS` classifier to the boilerplate layer of `BaseClassifier`, which could make `IndividualBOSS` and dependents break in boilerplate refactor such as #5408. The `_shorten_bags` logic internally made a "fitted clone" of `self`, with explicit copying of attributes, that assumed specifics of the private structure of `BaseClassifier` such as "names of all private attributes" that were hard-coded in `IndividualBOSS`. This coupling has been removed to the largest extent by instead using `deepcopy` and changing only the attributes that need to change.
Reference Issues/PRs
Related to #5182, #5286
Depends on #5651, which should be merged first.
What does this implement/fix? Explain your changes.
Adds broadcasting support to let classifiers and regressors handle
multioutput
data.What should a reviewer concentrate their feedback on?
Kindly give feedback on whether I am going in right direction.
PR checklist
For all contributions