-
-
Notifications
You must be signed in to change notification settings - Fork 25.9k
MDS: fall back to SVD when the full similarity matrix is known #1453
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
Comments
#1452 is merged now :) |
Yes... I'm just having trouble with this part. I thought it was obvious, but I don't get the same results with an SVD so far. I'll need more time on that PR. |
No worries. Take your time. I just wanted to let you know that you don't have to wait for me any more ;) |
Is someone still working on this issue? Otherwise, I'd like to take a closer look on it. |
Not that I know. Let's wait a bit to see if someone answers.
That would be great! |
@GaelVaroquaux @amueller This issue was harder than I expected. Would you be so kind to take a look at it to see if this goes into the right direction? Thanks |
Are there any comments on my PR? I am pretty conviced that my PR resolves this issue but I would love to get at least some feedback. |
My understanding is the SVD can be used to solve the "Classical MDS Problem" ([1] Section 13.6) but solving the "Metric MDS Problem" ([1] Section 13.8) requires a nonlinear least squares-type algorithm, such as SMACOF. Metric MDS is the current default for [1] Modern Multivariate Statistical Techniques, Alan Julian Izenman, 2013. |
|
From Wikipedia:
My understanding is that the only difference is that with metric MDS you have the choice do define your own loss function. The loss function as implemented in _smacof (if metric=True) is
To my understanding this is the strain as defined in classical MDS. In the more general metric MDS the usual way of defining the normalized stress is
as far as I know but it could be any arbitrary other metric. In this case you really need SMACOF but not in the former. So, as long as this MDS implementation does not allow for non-classical loss functions it can be solved with SVD. But anyway, I am no MDS expert and I was just looking for an issue with the "easy" label to contribute to Scikit-Learn and I thought that at least the goal of the issue "falling back to SVD..." was agreed on. |
@NelleV You opened and also worked on this issue, right? What do you think? Should this issue be just closed then since SVD makes no sense for the general case of a metric MDS? |
I opened the issue, hearing that metric MDS could be formulated as PCA, but now that I've tried formulating it, I'm not managing to, so I think I was confused between metric MDS and classic MDS and that this is not possible. @GaelVaroquaux , were you also thinking about classical MDS when we talked about it, and not metric MDS, or am I missing something obvious? |
I think we can close this one. |
Right now, the MDS uses a slow majorization optimization method instead of falling back to the SVD when the full matrix is known.
The text was updated successfully, but these errors were encountered: