Как отбелить мои данные перед подключением к PCA - PullRequest
0 голосов
/ 26 ноября 2018

Я применяю PCA к некоторым функциям ЭКГ, которые я извлек.Я нашел некоторый код и узнал его на веб-сайте Matlab, чтобы применить PCA.Тем не менее, я хотел бы отбелить свои данные перед применением PCA к нему.Мои данные - это матрица (125 х 9), с 9 функциями и 125 тестами.Моя матрица зовется рейтинги.У меня есть два блока кода: код PCA и код для отбеливания.Мой код PCA не включает отбеливание, но я надеюсь, что ответив на этот вопрос, он будет.

Код отбеливания

Я вычел среднее значение каждого столбца из матрицы следующим образом:

mean_ratings=mean(ratings); %get mean of each column
ratings=ratings-repmat(mean_ratings, 375,1); %subtract mean of each
%column from each element of the column

Я немного, но застрял начто делать после этого.Я вычислил enter image description here, следуя примеру кода:

sigma = ratings * ratings' / size(ratings, 2); %calculate the value of sigma
[U,S,V] = svd(sigma); %get S value and eigen vectors

xPCAwhite = diag(1./sqrt(diag(S) + epsilon)) * U' * ratings; %calculate
%whitened data

Код PCA

Я выполняю PCA, не рассматривая отбеливание, используя приведенный ниже код:

C = corr(ratings,ratings);
w=1./var(ratings);
[wcoeff,score,latent,tsquared,explained] = pca(ratings,...
'VariableWeights',w);
coefforth = inv(diag(std(ratings)))*wcoeff;
cscores = zscore(ratings)*coefforth;
figure()
plot(score(:,1),score(:,2),'+')
xlabel('1st Principal Component')
ylabel('2nd Principal Component')

Теперь мой вопрос заключается в том, могу ли я просто включить переменную 'xPCAwhite' вместо оценок для моего кода PCA?

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