Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[please review the Contribution Guidelines prior to submitting your pull request. go ahead and delete this line if you've already reviewed said guidelines.]
What does this PR do?
Sklearn API changed. See some relevant documentation below:
PR with the change here: scikit-learn/scikit-learn#29677
Also see the list of available tags here: https://scikit-learn.org/stable/modules/generated/sklearn.utils.Tags.html (click on each of the links in the parameters for each set of tags)
How to develop sklearn estimators here: https://scikit-learn.org/stable/developers/develop.html
I modeled the GraphPipeline and TPOTEstimator tags based off of the sklearn Pipeline class: https://github.com/scikit-learn/scikit-learn/blob/98ed9dc73/sklearn/pipeline.py#L1218
See xgboost’s recent update to address these changes here: dmlc/xgboost#11021
Changes:
Tags are kinda awkward in our case since it depends n the final search space and generated pipelines, which may not be known until we actually generate a pipeline. I tried to address this by having a default set of tags to start, but then pulling from the tags of the final fitted pipeline. This seems to work.
Passes all tests on my apple silicon MacBook.
Where should the reviewer start? / How should this PR be tested?
Run a few tpot pipelines with high verbosity to check for any errors relating to tags (such as sklearn_tags() being missing). In particular double check both TPOTEstimator and GraphPipeline since their tags depend on their internal/learned pipelines..
What are the relevant issues?
#1369 #1370
Questions:
dependencies must be updated to support sklearn 1.6. xgboost must be at least 3.0 to be compatible with sklearn 1.6