0

나는 PCA를하기 위해 matlab의 princomp 함수를 사용한다. 필자가 이해할 수 있도록 잠재력을 점검하여 필요한 차원을 결정할 수있었습니다. (: 1:10) 어떤 차원이 주요 구성 요소인지 어떻게 알 수 있습니까?

[coeff, score, latent, t2] = princomp(fdata); 
cumsum(latent)./sum(latent); 

그리고 trainMatrix = COEFF 사용하여

(I은 10 치수를 선택), 그리고 newData에 = 데이터 *의 trainMatrix을, 나는 감소 된 데이터를 얻을 수 있습니다.

그러나 어떤 치수가 축소되고 10 개의 치수가 남았는지 어떻게 알 수 있습니까?

30 개 기능이 있다면 princomp 이후에 알아낼 수있는 10 가지 기능 (원본 데이터의 열 인덱스)은 무엇입니까?

감사합니다.

답변

1

새로운 크기는 원래 크기의 선형 조합에 해당합니다. 즉, 새로운 각 기능은 다양한 이전 크기의 모든 기능으로 표시됩니다.

+0

나는 그것이 고유 값 정렬 결과를 알 수있는 어떤 방법 으로든 그것을 의미합니까? 예를 들어 어떤 기능이 기본 기능인지 파악할 수 있습니다. coeff 행렬을 사용하여 어떤 특징이 더 큰 가중치를 갖는지 파악할 수 있습니까? –

+0

@FreyaRen : PCA는 새로운 좌표계에서 동일한 데이터를 표현하기 때문에 첫 번째 차원에는 데이터의 가장 큰 분산이 포함되고 다음 차원은 가장 큰 나머지 분산을 따라 수직 및 방향이 지정됩니다. 이와 같은 시각화는 사용자가 이해할 수 있도록 도와줍니다. http://www.mathworks.com/help/stats/biplot.html. 물론 첫 번째 'k'자로 치수를자를 수 있고 'k'를 선택하면 원래의 데이터 분산의 95 %를 말하는 충분한 근사치를 얻을 수 있습니다 – Amro