Несортированные собственные значения для поиска функций в Python

1

Теперь я пытаюсь кое-что использовать с PCA, но для меня очень важно знать, какие функции отвечают за каждое собственное значение.

numpy.linalg.eig дает нам уже отсортированную диагональную матрицу, но мне нужна эта матрица с ними в исходных положениях. Кто-нибудь знает, как я могу это сделать?

  • 3
    Нет естественного порядка собственных значений и нет «исходной позиции».
  • 0
    хорошо, но собственные значения, рассчитанные для одной и той же матрицы в Python и в R, дают мне одинаковые значения в разном порядке.
Показать ещё 1 комментарий
Теги:
pca

2 ответа

1

Что Свен упомянул в своих комментариях правильно. Не существует "по умолчанию" упорядочения собственных значений. Каждое собственное значение связано с собственным вектором, и важно, чтобы пара собственных векторов eigenvalue- была правильно согласована. Вы обнаружите, что все языки и пакеты сделают это.

Итак, если R дает собственные значения [e1,e2,e3 и собственные векторы [v1,v2,v3], python, вероятно, даст вам (скажем) [e3,e2,e1] и [v3,v2,v1].

Напомним, что собственное значение говорит вам, какая часть дисперсии в ваших данных объясняется связанным с ней собственным вектором. Таким образом, естественная сортировка собственных значений (то есть интуитивно понятная нам), которая полезна в PCA, имеет размер (либо восходящий, либо нисходящий). Таким образом, вы можете легко просмотреть собственные значения и определить, какие из них сохранить (большие, поскольку они объясняют большую часть данных) и какие из них бросать (небольшие, которые могут быть высокочастотными функциями или просто шумом).

0

(Не ответ, но мне нужно форматирование для этого комментария.)

Вы должны указать, какой заказ вам нужен. Например, собственные значения этой матрицы

    / 0  1 \
A = |      |
    \ 1  0 /

являются +1 и -1, соответствующими собственным векторам (1 1) и (1 -1). Как бы вы хотели, чтобы эти собственные значения упорядочивались и почему?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню