Несортированные собственные значения для поиска функций в Python - PullRequest
1 голос
/ 03 июня 2011

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

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

Ответы [ 2 ]

1 голос
/ 03 июня 2011

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

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

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

0 голосов
/ 03 июня 2011

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...