-
Notifications
You must be signed in to change notification settings - Fork 29
refactor suggestion: modular index, spi tags, softdep management by spi #72
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
Comments
Here are concrete suggestions for the base class API design. For context, the current strategy pattern is internally defined in I would simplify the design into a flat class (no inheritance hierarchy) with tags, as follows:
|
FYI @Spinachboul, @benfulcher |
oh, hi, @joshuabmoore! So someone has started maintaining the package again? See some suggestions above for API improvement. |
Hi @fkiraly, Thank you for the API improvement suggestions! We appreciate the feedback and we'll look into incorporating some of these ideas in a future release. Yes, I'm currently maintaining the package, but only passively. There aren't any major overhauls planned at the moment, just minor updates and fixes as needed to keep things running smoothly. |
Regarding integration with We agree that making If you'd like to proceed, you're welcome to create a fork of the repository and work from there. I'm happy to provide occasional pointers along the way if that would be helpful, but just to set expectations, I'm not currently in a position to offer active mentorship. |
@joshuabmoore @fkiraly @benfulcher |
Thanks for the great presentation today, @benfulcher!
Inspired, I looked in greater detail into the repository, to my shame perhaps for the first time at that level of detail.
What I understood is that your SPI are actually not all manually implemented, but there is a wealth of them, some using external dependencies in turn. As such,
pyspi
is, morally, very much similar tosktime
, being a mix of de-novo implementations, direct interfaces to external algorithms, and implementations that use components with soft dependencies.I also noticed that you have tags for the different SPI, which again is very similar to
sktime
.Further, when trying to interface SPI individually, I noticed that this is currently not intended to be possible - only batch feature sets can be obtained? Which seems to be a shame, you have collected so many useful pairwise transformations! Unless of course you use the
yaml
, and the process of discovery if you want that is tedious, and currently cannot be automated, so composability with other frameworks is severely limited.Based on this, I had a number of ideas if you would like to hear me out:
scikit-base
. This would give you for free runtime discoverability - no need to use config yaml, or the webpage.all_estimators
insktime
: https://www.sktime.net/en/latest/api_reference/auto_generated/sktime.registry.all_estimators.htmlpyproject
would look like this insktime
: https://github.com/sktime/sktime/blob/main/pyproject.toml - minimal core dependency set; and dependencies are managed via tags like this: https://www.sktime.net/en/latest/api_reference/tags.html#general-tags-packagingWhat do you think? I'd be happy to devote some time to shift the code base gradually towards this schema. As a side effect, it would also easily allow to interface all SPI as time seires distances in
sktime
, and would make it easier to add SPI for multivariate or unequal length time series.FYI @jmoo2880
The text was updated successfully, but these errors were encountered: