기능 수를 줄일 수있을 때 PCA를 사용하여 학습 알고리즘의 속도를 높이는 이유는 무엇입니까?


12

머신 러닝 과정에서 PCA ( Principal Component Analysis ) 의 일반적인 용도 중 하나 는 다른 머신 러닝 알고리즘의 속도를 높이는 것입니다. 예를 들어 로지스틱 회귀 모델을 학습한다고 가정합니다. 1에서 n까지 i에 대한 훈련 세트 가 있고 벡터 x의 치수가 매우 크다는 것을 알 수 있습니다 (치수를 말하십시오) .PCA를 사용하여 더 작은 치수 (k 치수라고 함) 특징 벡터 z. 그런 다음 훈련 세트 ( z ( i ) , y ( i ) 에서 로지스틱 회귀 모델을 학습 할 수 있습니다.(x(i),y(i)) 경우 1에서 n까지입니다. 피처 벡터의 크기가 더 작으므로이 모델을 빠르게 학습 할 수 있습니다.(z(i),y(i))

그러나 임의의 k 개의 피쳐를 무작위로 선택하고 나머지를 제거하여 피쳐 벡터의 치수를 k 치수로 줄일 수없는 이유를 이해하지 못합니다.

z 벡터는 특징 벡터의 선형 조합입니다. z 벡터는 k- 차원 표면에 국한되기 때문에, k 개의 제거 된 피처 값의 선형 함수로서 ak 제거 피처 값을 쓸 수 있으며, 따라서 모든 z는 k 피처의 선형 조합에 의해 형성 될 수 있습니다. 따라서 기능이 제거 된 훈련 세트에서 훈련 된 모델이 PCA에 의해 치수가 축소 된 훈련 세트에서 훈련 된 모델과 동일한 힘을 가져서는 안됩니까? 모델의 유형과 선형 조합에 의존하는지 여부에 달려 있습니까?


1
드롭 컬럼은 PCA를 사용하는 것과 비교하여 더 많은 정보를 잃게됩니다.
Haitao Du

2
Polymerase Chain Reaction은 무엇과 관련이 있습니까? :-) --- 모든 심각성에서, 약어를 사용하기 전에 항상 용어를 철자해야합니다.
Carl Witthoft

PCA에서 얻은 고유 벡터를 새로운 기능으로 볼 수 있으므로 PCA는 기능을 축소 할 수 있습니다. 시작한 기능보다 더 많은 분산을 캡처하는 기능으로 재조합합니다.
mathreadler

1
stats.stackexchange.com/questions/141864 와 매우 관련이 있습니다.
amoeba는

답변:


26

pd<pdXXDD{0,1}p×dXXVVRp×dVXVXXdpp

XX


2
+1. 그래도 X의 변화 (PCA가 유지하려고하는)가 Y를 예측하는 데 왜 관련이 있는지 물어 보는 것이 여전히 합리적입니다. 이것은 관련 스레드입니다 : stats.stackexchange.com/questions/141864 .
amoeba는

4

PCA는 원래 데이터의 분산 / 정보를 유지하면서 기능을 줄입니다. 이것은 데이터의 현실과 유사성을 잃지 않으면 서 계산을 가능하게합니다.


2

PCA 솔루션

먼저,이 목적으로 PCA를 사용할 때주의하십시오. 내가 쓴대로 관련 질문에 응답 하지 않습니다 PCA 반드시 수있는 기능의 선택으로 이어질 당신이하려는 회귀에 대한 정보 (참조 졸리 프 1982 ).

OP 제안 솔루션

이제 제안 된 대안 메커니즘을 고려해 보자. reduce the dimension of your feature vector to k dimensions by just choosing k of your features at random and eliminating the rest.이제 문제 진술에서 우리는 그것을 가정하도록 요청 받았다 dimension of your vector x is very large. 이 차원을 라고합시다p

pCkkpp=1000k=58.25×1012k=5k=6p

제안 된 솔루션

p

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