koaning / scikit-lego

Extra blocks for scikit-learn pipelines.
https://koaning.github.io/scikit-lego/
MIT License
1.28k stars 118 forks source link

[FEATURE] equivalent to sklearn discovery module #673

Closed DCoupry closed 4 months ago

DCoupry commented 6 months ago

sklego should have an equivalent to: sklearn.utils.discovery, a module that stores methods such as:

This greatly simplifies the automatic use of the library in the context of auto-ML in particular. If interested, I can start work on a PR.

FBruzzesi commented 6 months ago

Hey @DCoupry thanks for reporting this issue. We have a somewhat naive script to get them at the moment, which is not shipped within the library source code.

I wouldn't mind adding a discovery util. My understand it that it would look like almost exact copy of the sklearn module with a very few adjustments. Or am I missing something?

koaning commented 6 months ago

I am unsure. Looking at the docs it seems that the discovery tools are going away in sklearn. I do not know if something will replace it, but if sklearn is dropping it then I think scikit-lego should not adopt it.

CleanShot 2024-05-22 at 13 38 54

DCoupry commented 6 months ago

Well dang, it appears this deprecation just came through with 1.5. Do we have a link to the relevant discussion? I wonder if it is going back to sklearn.utils.testing as a private function, like it was before / is in imbalanced-learn. @FBruzzesi , it could be included in an equivalent to https://github.com/scikit-learn-contrib/imbalanced-learn/blob/master/imblearn/utils/testing.py / https://github.com/scikit-learn/scikit-learn/blob/1.1.X/sklearn/utils/__init__.py instead of in the dicovery module (which apparently will keep on existing with only the all_displays function in it?)

edit: no mention of deprecation in the skl code history, no deprecation warning or decorator up to master. AFAIK, only place the deprecation shows is the website? No relevant discussion in the website github either. Might it be a rc1 mislabeling?

FBruzzesi commented 6 months ago

I agree with Vincent, if scikit learn itself is deprecating it and we don't have a relevant use case, it might just be a burden.

I am also debated as arguably:

DCoupry commented 6 months ago

Then let's shelve it until sklearn 1.7 to see what alternative they'll use (the function is quite useful, I doubt they'll remove it entirely unless of course it's too much of a maintenance burden). Or contact them to get an answer directly to future-proof implementation? In any case, I'll be available for work on this when needed.

koaning commented 4 months ago

Shall we close this issue in the meantime?

FBruzzesi commented 4 months ago

Closing it as not plan for now. We can come back to it when scikit-learn has something in place