Ответ 1
@RickardSjogren описывает собственные векторы, а @BigPanda дает нагрузки. Там большая разница: Нагрузки против собственных векторов в PCA: когда использовать тот или иной?.
Я создал этот класс PCA с помощью метода loadings
.
Нагрузки, заданные pca.components_ * np.sqrt(pca.explained_variance_)
, более похожи на коэффициенты при множественной линейной регрессии. Я не использую .T
здесь, потому что в классе PCA, указанном выше, компоненты уже транспонированы. numpy.linalg.svd
создает u, s, and vt
, где vt
является транспонированием Герметиана, поэтому вам сначала нужно вернуться в v
с помощью vt.T
.
Существует еще одна важная деталь: знаки (положительные/отрицательные) на компонентах и нагрузки в sklearn.PCA
могут отличаться от таких пакетов, как R.
Подробнее об этом здесь:
В sklearn.decomposition.PCA, почему компоненты являются отрицательными?.