Eu tenho uma matriz , contendo minhas amostras N = 20 no espaço D = 100- dimensional. Agora desejo codificar minha própria análise de componentes principais (PCA) no Matlab. Eu desprezo X para X_0 primeiro.X N = 20 D = 100 X X 0
Li no código de alguém que em tais cenários em que temos mais dimensões do que observações, não decompomos mais a matriz de covariância de . Em vez disso, Eigen-decompor . Por que isso está correto?
A matriz de covariância normal é do tamanho , cada elemento do qual nos diz a covariância entre duas dimensões. Para mim, nem sequer tem as dimensões corretas! É matriz, então o que isso nos diria? Covariância entre duas observações ?!
n<pé preciso menos RAM e menos tempo para se decompor, XX'pois é de tamanho menor.
XX'para o PC. Poderia me mostrar brevemente como? Dado que os PCs são apenas vetores próprios da matriz de covariância, tentei passar de eigen de XX'para eigen da matriz de covariância X'X, mas falhei.
X'XeXX'(assim como svd deXeX'). O que é chamado "loadings" em um caso será chamado "pc scores" no outro e vice-versa. Como ambas são apenas coordenadas ( veja, por exemplo ) e os eixos, as "dimensões principais" são as mesmas.