You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In current KernelPCA _fit_transform implementation, nothing prevents or alerts users that the eigenvalue decomposition presents some numerical or conditioning issue. We could check the following (thanks https://github.com/GabrielRilling for the suggestion!):
significant imaginary parts in eigenvalues (raise ValueError)
significant negative eigenvalues (throw KernelWarning if there is at least a positive eigenvalue, otherwise raise ValueError)
significant conditioning issues (huge ratio > 1e12 between large and small eigenvalues) (throw KernelWarning)
We should also perform some cleaning for non-significant issues (due to numerical approximation) and for the above when no error is raised:
remove unsignificant imaginary parts
set negative eigenvalues to zero
set extremely small eigenvalues (with respect to the largest ones) to zero
This will provide more robust and stable numerical computation across runs/platforms/noise.
The text was updated successfully, but these errors were encountered:
Note: I initially made a mistake with the issue number in the commit message above but fixed it and force-pushed again so it is not relevant anymore.
I will create a dedicated PR for this issue, that depends on #12143 (because fixing this issue requires that the problem with zero eigenvalues is solved first).
smarie
added a commit
to smarie/scikit-learn
that referenced
this issue
Sep 24, 2018
In current KernelPCA
_fit_transform
implementation, nothing prevents or alerts users that the eigenvalue decomposition presents some numerical or conditioning issue. We could check the following (thanks https://github.com/GabrielRilling for the suggestion!):ValueError
)KernelWarning
if there is at least a positive eigenvalue, otherwise raiseValueError
)KernelWarning
)We should also perform some cleaning for non-significant issues (due to numerical approximation) and for the above when no error is raised:
This will provide more robust and stable numerical computation across runs/platforms/noise.
The text was updated successfully, but these errors were encountered: