PRF simpler missing values handling in HGB - #34335
Merged
adam2392 merged 4 commits intoJun 21, 2026
Merged
Conversation
virchan
approved these changes
Jun 20, 2026
adam2392
self-requested a review
June 21, 2026 16:42
prady0t
pushed a commit
to prady0t/scikit-learn
that referenced
this pull request
Sep 2, 2026
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.
This refactor removes the need for
_find_best_bin_to_split_right_to_leftinsklearn/ensemble/_hist_gradient_boosting/splitting.pyxReference Issues/PRs
None.
But I will open a PRF PR soon that optimizes something in this function, so it's nice not to have to write it twice.
What does this implement/fix? Explain your changes.
I added an argument
missing_go_to_leftin_find_best_bin_to_split_left_to_right(now renamed_find_best_bin_to_split_numerical) so we don't need_find_best_bin_to_split_right_to_left.As explained in the docstring of
_find_best_bin_to_split_numerical: "We scan node from left to right. When missing_go_to_left is True, the scan starts by adding the missing-value bin to the left child before scanning the non-missing bins."Note that this matches how we do it in tree, which I think is nice: it's easier for us (tree/hgb contributors) to maintain a single unified mental model when possible.
AI usage disclosure
I used AI assistance for: