research notes

PCA (Principal Component Analysis) 본문

머신러닝/ML basic

PCA (Principal Component Analysis)

forest62590 2022. 2. 19. 21:45
728x90

1. 차원의 저주

  • 차원이 커질수록 데이터 포인트들간 거리가 크게 늘어나고 데이터가 희소화(Sparse)됨
  • 수백~수천개 이상의 피처로 구성된 데이터 포인트들간의 거리에 기반한 ML 알고리즘이 무력화 됨
  • 또한 피처가 많을 경우에 개별 피처간에 상관관계가 높아 선형회귀와 같은 모델에서는 다중 공선성 문제로 모델의 예측 성능이 저하될 가능성이 높음
    • 다중공선성 문제: 독립변수간의 상관관계가 매우 높아 하나의 독립변수의 변화가 다른 독립변수에 영향을 미쳐 결과적으로 모델이 불안정하게 되는 것을 의미한다.

2. 차원축소의 장점

만약 수십~수백개의 피처들을 작은 수의 피처들로 축소한다면?

  • 학습 데이터 크기를 줄여서 학습시간 절약
  • 불필요한 피처들을 줄여서 모델 성능 향상에 기여 (주로 이미지 관련 데이터)
  • 다차원의 데이터를 3차원 이하의 차원 축소를 통해서 시각적으로 보다 쉽게 데이터 패턴 인지

⇒ 그렇다면 어떻게 하면 원본 데이터의 정보를 최대한으로 유지한 채로 차원 축소를 수행할 것인가?

3. 피처 선택(feature selection)과 피처 추출(feature extraction)

- 일반적으로 차원 축소는 피처 선택(feature selection)과 피처 추출(feature extraction)로 나눌 수 있다.

 

- 피처선택(feature selection): 특정 피처에 종속성이 강한 불필요한 피처는 아예 제거하고, 데이터의 특징을 잘 나타내는 주요 피처만 선택하는 것

피처추출(feature extraction):

- 피처(특성) 추출은 기존 피처를 저차원의 중요 피처로 압축해서 추출하는 것. 이렇게 새롭게 추출된 중요 특성은 기존의 피처를 반영해 압축된 것이지만 새로운 피처로 추출하는 것이다.

 

- 피처 추출은 기존 피처를 단순 압축이 아닌, 피처를 함축적으로 더 잘 설명할 수 있는 또 다른 공간으로 매핑해 추출하는 것이다.

 

4. 차원축소의 의미

- 차원축소는 단순히 데이터의 압축을 의미하는 것이 아니다. 더 중요한 의미는 차원 축소를 통해 좀 더 데이터를 잘 설명할 수 있는 잠재적(Latent)인 요소를 추출하는 데에 있다.

- 차원 축소는 많은 feature로 구성된 다차원 데이터 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것

- PCA(주성분 분석, Principal Component Analysis)는 고차원의 데이터를 저차원의 데이터로 축소시키는 차원 축소 방법 중 하나

5. PCA의 이해

  • 고차원의 원본데이터를 저차원의 부분 공간으로 투영하여(Projection) 데이터를 축소하는 기법
  • 예를들어 10차원의 데이터를 2차원의 부분 공간으로 투영하여 데이터를 축소
  • PCA는 원본 데이터가 가지는 데이터 변동성을 가장 중요한 정보로 간주하며, 이 변동성에 기반한 원본 데이터 투영으로 차원 축소를 수행
  • 가장 높은 분산을 가지는 데이터의 축을 찾아 이 축으로 차원을 축소하면 PCA의 주성분이 된다.

2개의 피처를 한 개의 주성분을 가진 데이터 세트로 차원 축소

References:

[1] https://bkshin.tistory.com/entry/머신러닝-9-PCA-Principal-Components-Analysis

[2] https://knowledge.dataiku.com/latest/courses/statistics/dimensionality-reduction/PCA-concept-summary.html

[3] https://excelsior-cjh.tistory.com/167

[4] https://www.graphpad.com/guides/prism/latest/statistics/stat_feature_selection_extraction.htm

[5] https://vitalflux.com/machine-learning-feature-selection-feature-extraction/

[6] 파이썬 머신러닝 완벽가이드, 권철민, 위키북스

[7] 파이썬 머신러닝 완벽가이드, 권철민, 인프런

[8] https://velog.io/@jkl133/다중공선성과-MLDL-problems

728x90
Comments