Я выполнил свою функцию PCA в Matlab следующим образом:Почему разные результаты с PCA и SVD в Matlab?
function e = myPCA(X)
[D, N] = size(X);
m = mean(X, 2);
X = X - repmat(m, 1, N);
[e, ~, ~] = svd(X,'econ');
end
Когда я использую теперь встроенную функцию Matlab [e, ~, ~] = pca(X');
Я получаю те же абсолютные значения, с моей функцией, но для некоторых столбцов U знак перевернут.
Какое из них является правильным способом и почему существует эта разница в знаке?
спасибо. Мне интересно получить все собственные значения и собственные векторы ковариационной матрицы. Если я использую метод Matlab pca, то собственные векторы являются столбцами в «e» из [e, ~, ~] = pca (X ') ;. Это правильно? Но как я могу получить собственные значения? – machinery
У меня есть еще один момент: «Вычислить основные компоненты и собственные значения ковариационной/корреляционной матрицы». Являются ли главные компоненты равными собственным векторам? Должен ли я использовать в этом случае метод pca или метод SVD из Matlab или это не имеет значения? – machinery
Да, собственные векторы являются главными компонентами. Неважно, какой метод вы используете, они математически эквивалентны. –