Finding the knee point in an eigenvalue plot

조회 수: 8 (최근 30일)
Sepp
Sepp 2014년 6월 2일
댓글: Sepp 2014년 6월 3일
Hi
I want to automatically find the "knee" point of the eigenvalue plot. I.e. I have a vector of eigenvalues (sorted from highest to lowest) and I want some heuristic to find the "knee" point.
Is there some heuristic for doing that?
  댓글 수: 1
John D'Errico
John D'Errico 2014년 6월 2일
편집: John D'Errico 2014년 6월 2일
Your definition of where the "knee" lies may not be mine. You need to define carefully what that point is, and even then I think you may have problems to find that point consistently.
My point is, unless you can define (mathematically) what the knee looks like, you cannot program an algorithm to do so, and if you get some code from someone else, their idea may not coincide with yours. (Yeah, while even a supreme court justice says that he knows "it" when he sees it, writing a computer algorithm is not quite so clear.) So expend some thought, and define carefully that location to be found. Once you do, the algorithm is often trivial.

댓글을 달려면 로그인하십시오.

답변 (1개)

the cyclist
the cyclist 2014년 6월 3일
편집: the cyclist 2014년 6월 3일
This is a complex problem, and there is some academic literature on it. I suggest you Google some combination of the keywords: scree elbow automatic.
(These eigenvalue plots are often called "scree plots", and the "kink" is usually referred to as the "elbow", not the "knee".)
  댓글 수: 1
Sepp
Sepp 2014년 6월 3일
Thank you for your answers. I will google for the scree elbow and look what I find. An other option is to learn the number of eigenvalues (i.e. the point of the elbow) by cross-validation globally.
I found two other easy suggestions:
1. Setting a threshold, say 0.99, or 0.95 and keep m of n eigenvalues when
T(m-1) < 0.99 *T(n) <= T(m)
where
T(m) = sum(i=1:m){lambda(i)}
2. The knee is located at a point where the radius of curvature. is a local minimum. For a curve y = f(x) the curvature is
k = y''/(1+(y')^2)^(3/2).
Just repace the derivatives with finite differences.
What do you think of these two proposals?
How can I implement the second one? I don't understand how to replace the derivatives with the differences.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Particle & Nuclear Physics에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by