데이터과학 삼학년

PCA (Principal Component Analysis) 종류 본문

Machine Learning

PCA (Principal Component Analysis) 종류

Dan-k 2021. 2. 2. 15:33
반응형

Random PCA

- 확률적 알고리즘을 사용해 처음 d개의 주성분에 대한 근삿값을 빠르게 서치

- 완전한 SVD 방식 : O(m * n^2) + O(n^3)

- Random PCA : O(m * d^2) + O(d^3)

- d가 n 보다 많이 작으면 완전 SVD 보다 훨씬 빠르게 찾음

pca = PCA(n_components=154, svd_solver='randomized')

 

Incremental PCA (IPCA)

- PCA 구현의 문제는 SVD를 실행하기위해 전체 훈련세트를 메모리에 올려야하는 문제이다.

- 이를 해결하기 위해 미니배치를 이용해 점진적으로 PCA를 구현하는 알고리즘이 출현

transformer = IncrementalPCA(n_components=7, batch_size=200)
# either partially fit on smaller batches of data
for X_batch in np.array_split(X_train,n_batches):
	transformer.partial_fit(X_batch)
X_reduced = transformer.transform(X_train)

 

Kernel PCA (kPCA)

- 매우 높은 고차원공간으로 암묵적으로 매핑하여 서포트 벡터 머신의 회귀/분류 가능 기법 --> 커널 트릭

- 커널 트릭 기법을 PCA에 적용한 기법 --> kPCA

transformer = KernelPCA(n_components=7, kernel='linear') # kernel='rbf'
X_transformed = transformer.fit_transform(X)

728x90
반응형
LIST
Comments