-
-
Notifications
You must be signed in to change notification settings - Fork 26k
API Add "auto"
value and deprecate default value for normalized_stress
#23834
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Next step after this PR is to deprecate normalized_stress all-together and only adopt the "auto" semantics.
This would disable a configuration that works today, i.e. normalized_stress=False
and metric=False
. Is there a use case for this configuration?
From what I've read so far, not really. It seems that for non-metric MDS, normalized stress (Stress-1) is almost alays used. This is consistent w/ the R implementations of non-metric MDS. I'll do some more review on the matter (was planning on so after this PR) but as of right now everything I've seen is pretty one-sided suggesting that unnormalized stress is strictly worse than normalized stress in the non-metric case. |
IIndeed, the R implementation only exposes Stress-1, not the raw stress. I think it is fine to not support raw stress for non-metric MDS. Furthermore, Kruscal's initial numerical implementation was explicitly optimizing Stress-1 as opposed to raw stress. With these I'm pretty confident we can safely abandon raw stress for non-metric MDS. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When normalized_stress="auto"
, the eps
would be a bit harder to tune because of the automatic switching between normalized stress and un-normalized stress.
Since literature and the R implementation only uses the normalized stress for non-metric MDS, I am overall okay with this PR.
"auto"
value and deprecate default value for normalized_stress
"auto"
value and deprecate default value for normalized_stress
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
…kit-learn into mds_normalized_auto
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm overall happy with this change. LGTM
Since |
Even tho |
Right, I read too quickly |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
…ress` (scikit-learn#23834) Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
Reference Issues/PRs
Follow-up to #22562
What does this implement/fix? Explain your changes.
Adds
"auto"
option tonormalized_stress
inMDS
and_mds.smacof
, which will enablenormalized_stress
ifmetric=False
, and disable otherwise. Began deprecation to change default value to"auto"
.Any other comments?
Next step after this PR is to deprecate
normalized_stress
all-together and only adopt the"auto"
semantics.