차원이 샘플 수보다 큰 경우 PCA


21

나는 분류기에 전달 해야하는 14000 데이터 포인트 (치수)를 포함하는 10 명 (100 샘플)에 대해 10 개의 신호 / 사람이있는 시나리오를 보았습니다. 이 데이터의 차원을 줄이고 싶습니다. PCA가 그렇게하는 것 같습니다. 그러나 샘플 수가 차원 수보다 큰 PCA의 예만 찾을 수있었습니다. SVD를 사용하여 PC를 찾는 PCA 응용 프로그램을 사용하고 있습니다. 100x14000 데이터 세트를 전달하면 101 대의 PC가 반환되므로 대부분의 크기가 무시됩니다. 이 프로그램은 처음 6 개의 PC에 분산의 90 %가 포함되어 있음을 나타냅니다.

이 101 PC에 본질적으로 모든 분산이 포함되어 있고 나머지 치수는 무시할 수 있다는 합리적인 가정입니까?

내가 읽은 논문 중 하나는 내 것과 비슷한 (약간 품질은 낮지 만) 데이터 세트를 사용하여 원래 정보의 96 %를 유지하면서 4500 크기를 80으로 줄일 수 있다고 주장합니다. 이 논문은 사용 된 PCA 기술의 세부 사항에 대해 손을 흔들고 3100 개의 샘플 만 사용 가능했으며 실제로 PCA를 수행하는 데 사용 된 것 (분류 단계에서 편향을 제거하기 위해)보다 적은 샘플을 믿어야 할 이유가 있습니다.

PCA가 높은 차원의 낮은 표본 크기 데이터 세트와 함께 사용되는 방식입니까? 모든 의견은 대단히 감사하겠습니다.


2
치수보다 훨씬 많은 데이터가없는 경우 첫 번째 주요 구성 요소가 수행해야하는 변동성을 대부분 제거하는 방향을 찾기가 어렵습니다. 일반적으로 차원의 저주가 있습니다. 데이터는 높은 차원에서 중심에서 멀어지는 경향이 있습니다. Bellman은 1960 년대에 이에 대해 썼습니다.
Michael R. Chernick

답변:


9

약간 다른 각도에서 문제를 보았습니다. 10 명의 피험자 / 100 개의 샘플로 모델을 얼마나 복잡하게 만들 수 있습니까?

그리고 그 질문은 보통 100 대 미만의 PC로 대답합니다. 다른 유형의 데이터 (진동 스펙트럼)에서 작업하므로 상황이 약간 다를 수 있습니다. 내 분야에서 일반적인 설정은 O (10) 대상의 O (1000) 스펙트럼에서 계산 된 10 또는 25 또는 50 대의 PC를 사용하는 것입니다.

내가 할 일은 다음과 같습니다.

  • 그 100 대의 PC에 포함 된 차이를보십시오. 일반적으로 데이터의 분산에 실제로 기여하는 구성 요소는 거의 없습니다.

  • 나는 PLS가 PCA에 비해 클래 시화를위한 전처리로서 PLS를 선호합니다. 분류에 도움이되지 않는 높은 변형이있는 방향을 분류하는 데 훨씬 더 나은 작업을 수행하기 때문입니다 (제 경우에는 초점 편차, 샘플 두께가 다를 수 있음). ..). 내 경험상 종종 10 PLS 잠재 변수 또는 25 ~ 50 PC의 유사한 분류기를 얻습니다.

  • 검증 샘플은 훈련 세트에서만 계산 된 PCA 회전으로 처리해야합니다.
    즉, 부트 스트랩 외부 또는 교차 검증을 수행하는 경우 각 트레인 / 테스트 세트 조합에 대해 PCA 또는 PLS 사전 처리를 별도로 계산해야합니다.


유익한 게시물에 감사드립니다. 생체 신호 데이터로 작업하고 있습니다. 합리적인 성능으로 분류를 수행하려면 100 대 미만의 PC가 필요합니다. 25-50의 범위에 해당하는 것이 좋습니다. 검사해야 할 샘플 수를 줄이기 위해 샘플링 속도를 줄이는 것을 고려했지만 해상도 균형을 맞출 가치가 있거나 동일한 크기로 훈련을받을 때 효과가있을 것으로 기대하십니까? ? 해당 분야의 다른 연구와 일관성을 유지하기 위해서는 PCA가 필요하지만 PLS를 보조 접근법으로 확실히 살펴볼 것입니다.
James

1
@ 제임스 : 데이터를 알지 못하면 샘플링 속도 질문에 대답 할 수 없습니다. 본질적으로 효과적인 샘플 크기의 문제입니다. 더 이상 알지 못하면 n (사람)과 n (샘플) 사이에 있다고 말할 수 있습니다. 한 사람의 10 개 표본이 모두 다른 사람의 표본보다 서로 더 유사하면 더 많은 표본이 데이터 세트에 많은 정보를 추가하지 않습니다. 모든 샘플로 하나의 모델을 만들고 한 사람당 하나의 샘플로만 두 번째 모델을 만들고 성능을 비교하여 확인할 수 있습니다.
cbeleites는 Monica를 지원합니다

@ 제임스 : (2 부) 한 사람의 표본이 서로 비슷하다고 생각되면 검증 및 훈련 세트가 사람을 공유하지 않도록주의해야합니다 (즉 , 한 사람의 모든 표본이 훈련 중이거나 테스트 세트).
cbeleites는 Monica를 지원합니다

다시 연락해 주셔서 감사합니다. 내 데이터는 사용자 클래스간에 샘플 공간이 상당히 겹치면서 변동성이 매우 높습니다. 그러나 죄송합니다. 샘플을 줄이는 것이 아니라 14000 데이터 포인트의 해상도를 낮추는 것을 의미했기 때문에 PCA에서 2, 3 또는 4 포인트마다 사용되었지만 실제 사용자 샘플 수는 동일합니다. 치수가 이미 샘플보다 훨씬 큰 경우 분해능 저하가 PCA의 결과에 긍정적, 부정적 또는 전혀 영향을 미치지 않을지 궁금합니다.
James

1
@ 제임스, 이건 또 달려요. 그러나 모든 n 포인트 만 사용하는 대신 n 포인트마다 평균 / 비닝하는 것이 좋습니다. 따라서 차원을 줄이고 신호 대 잡음비를 증가시킵니다. 필요한 (데이터 포인트 차원이 무엇이든, 여기에 "스펙트럼"을 넣은) 해결 방법을 찾는 것은 문제 / 데이터 / 분류기 특성의 특성화의 한 지점입니다. th
cbeleites는 Monica를 지원합니다

9

하면 점의 개수 크기 및 개수 다음 비 - 제로 분산 초과 할 수 없음과 주성분의 개수 (원 데이터에 PCA 하) 또는 에 PCA를 수행 할 때 ( 중앙 데이터-평소와 같이).npnpnn1


2
즉, 100 PC는 크기 (100 x 1400)의 데이터 세트에서 전체 분산을 포괄합니다. 수학적으로이 데이터 세트에는 더 이상 차이가있을 수 없습니다. 데이터 세트로 샘플링 한지면 모집단의 분산을 보면 상황이 다를 수 있습니다.
cbeleites는 Monica를 지원합니다

2
@ ttnphns : 여기에 무슨 말을하는지 인용을 알고 있습니까?
Patrick


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.