Merged
Conversation
added 4 commits
January 11, 2021 21:21
scikit learn changed how KNN works in 0.24. _fit(X) was replaced by _fit(X, y=None), with a test for a _tage whether 'requires_y' is true. y is not actually required, so this should fix it.
scikit learn changed how KNN works in 0.24. _fit(X) was replaced by _fit(X, y=None), with a test for a _tage whether 'requires_y' is true. y is not actually required, so this should fix it.
scikit learn would fail these quality checks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Reference Issues/PRs
Fixes #608 . See also #596.
What does this implement/fix? Explain your changes.
scikit learn changed how KNN works in v0.24. _fit(X) was replaced by _fit(X, y=None), with a test for a _tag whether 'requires_y' is true. this is called in sklearn/neighbors/_base.py function_fit.
y is not actually required. Fixed by implementing
def _more_tags(self):
return {'requires_y': False}
this will overwrite the base class requires_y: True, since this function _get_tags is calls all _more_tags in the inheritance hierarchy in reverse order, from base class to self, using inspect.getmro, which seems to be pythons version of reflection.