Объясненный расчет отклонения - PullRequest
0 голосов
/ 04 декабря 2018

Мои вопросы относятся только к https://scikit -learn.org / stable / modules / generate / sklearn.decomposition.PCA.html # sklearn.decomposition.PCA .

  1. Я не понимаю, почему вы квадратные собственные значения https://github.com/scikit-learn/scikit-learn/blob/55bf5d9/sklearn/decomposition/pca.py#L444 здесь?
  2. Кроме того, объясненная_вариантность не рассчитывается для новых преобразованных данных, кроме исходных данных, используемых для вычисления собственных векторов.Обычно это не делается?
    pca = PCA(n_components=2, svd_solver='full') pca.fit(X) pca.transform(Y) В этом случае не будете ли вы отдельно рассчитывать объясненную дисперсию для данных Y.Для этой цели, я думаю, мы должны были бы использовать точку 3. вместо использования собственных значений.
  3. Объясненную дисперсию можно также рассчитать, взяв дисперсию каждой оси в преобразованном пространстве и погрузив ее в общую дисперсию.Любая причина, которая здесь не сделана?

1 Ответ

0 голосов
/ 04 декабря 2018

Ответы на ваши вопросы:

1) Квадратные корни собственных значений матрицы рассеяния (например, XX.T) являются сингулярными значениями X (см. Здесь: https://math.stackexchange.com/a/3871/536826). Таким образом, вы возводите их в квадрат. Важно : исходная матрица X должна быть центрирована (данные были предварительно обработаны, чтобы иметь нулевое среднее значение) для того, чтобы вышеупомянутое удержалось.

2)Да, это путь.объясненная переменная вычисляется на основе единичных значений.См. Пункт 1.

3) Это то же самое, но в случае, если вы описываете, вы ДОЛЖНЫ проецировать данные, а затем выполнять дополнительные вычисления.В этом нет необходимости, если вы просто вычисляете его, используя собственные значения / значения в единственном числе (см. Пункт 1 снова для связи между этими двумя).

Наконец, имейте в виду, что не все действительно хотят проецировать данные.Кто-то может получить только собственные значения, а затем немедленно оценить объясненную дисперсию БЕЗ проецирования данных.Так что это лучший золотой стандарт для этого.

РЕДАКТИРОВАТЬ 1:

Ответ на отредактированный пункт 2

Нет,PCA - неконтролируемый метод.Он преобразует только данные X, а не Y (метки).

Опять же, объясненная дисперсия может быть вычислена быстро, легко и с использованием половины строки кода с использованием собственных значений / единичных значений ИЛИ, как вы сказали, с использованием проецируемогонапример, данные оценивают ковариацию проецируемых данных, тогда отклонения ПК будут в диагонали.

...