PCA를 수행 할 때 얼마나 많은 차원을 줄일 수 있습니까?


12

PCA에 K를 선택하는 방법은 무엇입니까? K는 투영 할 치수의 수입니다. 유일한 요구 사항은 너무 많은 정보를 잃지 않는 것입니다. 나는 그것이 데이터에 달려 있다는 것을 이해하지만 K를 선택할 때 고려해야 할 특성에 대한 간단한 일반적인 개요를 찾고 있습니다.


허용 가능한 데이터 손실 및 문제 설명에 따라 달라집니다!
Dawny33

아래 두 가지 답변에 동의합니다. 그러나 정보 손실을 정량화하는 간단한 방법, 즉 공분산 행렬의 SVD 대각선을 사용하는 간단한 방법이 있다는 것을 알고 있습니까?
yuqian

답변:


13

PCA 알고리즘을 수행 한 후에는 주요 구성 요소를 보유한 정보의 양에 따라 정렬합니다. 전체 세트를 유지하면 정보가 손실되지 않습니다. 하나씩 제거하고 원래 공간으로 다시 투영하면 정보 손실을 계산할 수 있습니다. 제거 된 주요 구성 요소 수에 대해이 정보 손실을 플로팅하고 그것이 적절할 경우 '팔꿈치'인지 확인하십시오. 이 중 다수는 사용 사례에 따라 다릅니다.


(+1) 예, 그렇게 간단합니다 :)
Dawny33

3

나는 보통 K 값이 보유한 정보의 백분율을 확인합니다. 8 개의 필드 중 2 개가 정보의 90 %를 보유한다고 가정 해 봅시다. 그러면 다른 6 개 또는 5 개 필드를 포함 할 필요가 없습니다. 768 입력 중 mnist 데이터를 알고 있다면 250 만 사용하여 정확도가 83에서 96 %로 떨어졌습니다. 사실 차원이 클수록 더 많은 문제가 발생합니다. 자르세요. 나는 보통 정보의 90 % 만 보유한 K 만 가져 가면 효과가 있습니다.


안녕하세요 .. x %의 정보를 사용하고 어떻게해야할지 잘 모르는 비슷한 문제가 있습니까? IPCA 를 사용 하여이 작업을 수행 하려고 합니다 .n_components = None을 그대로 둘 수 있지만 데이터의 x %를 갖는 기능은 무엇입니까?
아스날 광신
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.