Fix PowerTransformer leaves constant feature unchanged #26566
Merged
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.
When a feature is constant,
Powertransformer
withmethod="yeo-johnson"
sets an unmeaningful lambda which arbitrarily scales the feature. I think it should be left unchanged in that case, and lambda should be set to 1 because the yeo-johnson transformation with lambda=1 correponds to the identity transformation.This also fixes a couple of failing tests in the scipy-dev job because scipy now raises an error when the optimisation of lambda failed (scipy/scipy#17704), which is the case for constant features.
(Note: this is irrelevant for method="boxcox" because it does not support constant features from the start and scipy already used to raise an informative error message)
Partial fix for #26154.