Что значит упорядочить собственные векторы? - PullRequest
0 голосов
/ 22 марта 2019

Я работал над задачей, которая требовала от меня вычисления Eigenfaces . Для вычисления собственных граней требуется вычислить собственных значений и собственных векторов .

Я вычислил собственные значения и собственные векторы, используя восьмерку numpy. Я думаю, что я понимаю, что такое собственные векторы. Это векторы, которые не меняют положение при преобразовании изображения из одной геометрии / плоскости в другую. В том, что они могут однозначно идентифицировать изображение. Собственные значения соответствуют каждому собственному вектору, который представляет скалярные изменения, которые претерпел собственный вектор.

Что я не понимаю, так это утверждение из документации numpy , в котором говорится:

Функция возвращает собственные значения в порядке возрастания, каждое из которых повторяется в соответствии с его кратностью.

Что это за заказ? На какой порядок ссылается документация?

Например:

arr = np.random.uniform(size=(3,3,3))
eigen_val, eigen_vec = np.linalg.eigh(arr)

Собственные векторы, возвращенные из моего вышеприведенного прогона, выглядят так:

  array([[[ 0.73988841,  0.42234431, -0.52363195],
        [ 0.00792645, -0.78378814, -0.62097771],
        [-0.67268292,  0.45530367, -0.58326346]],

    [[-0.57948585,  0.3848149 , -0.7184105 ],
        [-0.32564468, -0.91740718, -0.22873479],
        [ 0.74709551, -0.10139798, -0.6569374 ]],

    [[-0.77375832,  0.50124139, -0.38736951],
        [-0.12305613, -0.7187746 , -0.68426622],
        [ 0.62141392,  0.48178849, -0.61783865]]])

Что я понимаю здесь при заказе?

Весь контекст заключается в том, что собственные векторы вычисляются во время PCA , и я читал, что лучшие K собственных векторов объясняют наилучшую дисперсию. Но я не мог понять, что это значит.

1 Ответ

0 голосов
/ 22 марта 2019

Они упорядочены по величине собственного значения в порядке возрастания, как это объясняется в документации:

print(eigen_val)

array([[-0.65484945,  0.53345853,  1.2783374 ],
       [-0.54451155,  0.23566298,  1.32844171],
       [-0.11539487,  0.49887717,  1.55005921]])

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

...