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] MrSEQL
classifier revisited - with dependency isolation
#4296
Comments
I think there might also have been a problem with the license. It would appear that Publishing |
Hi @fkiraly Thank you for letting us know. Is there anything I can help with the process ? FYI we are also maintaining a python wrapper for MrSEQL here: https://github.com/mlgig/mrseql Re the license issue, we think we maybe able to change our license to accommodate sktime but we need to check. We will comeback to you later re this issue. |
Ah, @lnthach, thanks a lot, I was not aware of that repo!
The final location can be either, the main options that I see and you can pick from:
My opinion on pros/cons: Option 1 puts more maintenance burden on The precise location of subroutines and tests may have to be discussed in either setting. |
FYI, happy to help you turning the newer |
Maybe a silly question, @lnthach: were you informed that When we handled the deprecation a while ago, we already had the algorithm ownership guidelines in place, so you should have at least gotten a heads-up or a GitHub ping since you come up as an owner when I look into the code in version 0.8.1. The issue was around cython, and there was a longer period where algorithms were reworked, or the dependency was isolated - this could have been done along the lines I describe above for If you did not get a heads-up, I have to sincerely apologize. |
@lnthach, @heerme, here's how it would look like: You can take this PR as a template for MrSEQL if you want. There are some interesting questions on how we handle testing - currently we do not have cython in the |
Hi @fkiraly, |
Thanks a lot. If I understand correctly, I need to:
Re testing, I think so. Is there any standard test for sktime estimator or it's entirely up to me ? |
Ah, we just crossed over, I wrote this issue mlgig/mrsqm#7 without seeing your answer here first!
Yes, as in the issue mlgig/mrsqm#7 in from sktime.utils.estimator_checks import check_estimator
check_estimator(my_estimator, raise_exceptions=True) Note: this requires that the estimator inherits from an Also, the template from #4337 ensures it is also tested on the |
Correct! To be more precise, it would be one of multiple ways to do it, but this is probably the easiest, given that #4337 works without too much hassle. There are two (small interface compatibility) issues that also need to be solved, see mlgig/mrsqm#7 - they would probably also impact |
This PR adds a direct interface fo the MrSQM algorithm by @lnthach and @heerme, based on the `mrsqm` package on `pypi`. (fixes #4338) This serves as a proof-of-concept for how we could interface estimators with cython dependencies, such as MrSEQL, also see #4296 Related to the feature importance question in #4336 Also adds a separate CI element which tests only the C dependent estimators, `test-cython-estimators` - this will allow addition of future cython estimators in external dependencies, leaving cython to the external dependency and isolating it from `sktime`.
I wrote an extra guide for cython based estimators, hope that is useful. |
Hi all, I have been using MrSEQL from the sktime-0.8.1 package. I have found what seems like a subtle issue with the fit function. I think this is due to the seql_clf sub class of MrSEQL appending to self.features and self.coefficients attributes during fitting instead of creating new self.features and self.coefficients attributes. I have outlined in the attached 'Fit Function MrSEQL pdf' document where exactly in the code I think the problem is. I have also created a notebook (MrSEQL Behavior Example.ipynb inside zip) showing the impact of this problem with two different scenarios. This notebook runs with the sktime-0.8.1 package and shows another algorithm (ROCKET) behaving as expected. Fit function MrSEQL.pdf It would be good to get your thoughts on this and the fix is quite simple if you agree with what I have stated above? Thanks, Amarpal |
Hello @Laprama, it would be easy to add back MrSEQL - and fix the bug - but someone needs to maintain a separate python package, similar to MrSQM. Probably the simplest option would be to make a PR to https://github.com/lnthach/Mr-SEQL and create a package out of it, for that one could follow the pattern for MrSQM https://github.com/mlgig/mrsqm or use Ultimately, that would require @lnthach and @heerme to assist or advise (or at least approve PR) as it is their GitHub repo. |
Update: |
Trying a naive replication of the MrSQM recipe here: #5178 |
FYI @Laprama, the issue you were encountering should be solved, as the |
That makes sense, thanks |
From the discord, there is a request to include the
MrSEQL
classifier again, by @Laprama.For context,
MrSEQL
was originally removed due to its dependencies oncython
which resulted in a significant increase in installation complexity and reduction of compatibility, ofsktime
, see here: #1974However, now, the
skbase
/python_dependencies
tag mechanism allows dependencies to be fully isolated.So, a clean way to proceed by including
MrSEQL
back intosktime
could be:MrSEQL
python package out of the existing code, e.g., https://github.com/lnthach/Mr-SEQLsktime
and integrate it using the extension template. Handle theMrSEQL
package as an estimator specific dependencyFYI @heerme, @lnthach
For completeness, also a request from discord, I've included in this discussion post the piece of documentation I could find in 0.8.1 of the old
MrSEQL
classifier (no longer insktime
):#4295
The text was updated successfully, but these errors were encountered: