[CodesSates] AI 부트캠프

Dimension Reduction

웅탈 2021. 3. 22. 23:21

Dimension Reduction

 

핵심 키워드

 

 

  • Vector Transformation
  • High dimension Data와, 이로 인한 이슈
  • Feature Extraction / Selection
  • PCA

 

 

고유벡터 (Eigenvector) , 고유값 (Eigenvalue)

 

- Transformation은 matrix를 곱하는 것을 통해, 벡터(데이터)를 다른 위치로 옮긴다라는 의미를 가지고 있음

이러한 Transformation에 영향을 받지 않는 벡터를 고유벡터 라고함.

 

- 주어진 transformation에 대해서 크기만 변하고 방향은 변화 하지 않는 벡터

 

- 여기서 변화하는 크기는 결국 스칼라 값으로 변화 할 수 밖에 없는데, 이 특정 스칼라 값 고유값 (eigenvalue)

 

 

Selection 과 Extraction의 차이

 

- Selection 의 경우

  • 장점 : 선택된 feature 해석이 쉽다.
  • 단점 : feature들간의 연관성을 고려해야함.
  • 예시 : LASSO, Genetic algorithm 

- Extraction의 경우

  • 장점 : feature 들간의 연관성 고려됨. feature수 많이 줄일 수 있음
  • 단점 : feature 해석이 어려움.
  • 예시 : PCA, Auto-encoder 

 

PCA

- 고차원 데이터를 효과적으로 분석하기 위한 기법

- 낮은 차원으로 차원 축소

- 고차원 데이터의 정보(분산)를 최대한 유지하는 벡터를 찾고, 해당 벡터에 대해 데이터를 (Linear)Projection

 

from sklearn.preprocessing import StandardScaler, Normalizer
from sklearn.decomposition import PCA

1) Normalize(표준화)

scaler = StandardScaler()
Z = scaler.fit_transform(X)

2) 고유벡터, 고유값 계산

# value, vectors = np.linalg.eig()
pca = PCA(2) # 주성분을 몇개로 할지
pca.fit(X)

print("Eigenvectors:", pca.components_)
print("Eigenvalues:",pca.explained_variance_)

3) 데이터를 고유 벡터에 projection

B = pca.fit_transform(X)

 

'[CodesSates] AI 부트캠프' 카테고리의 다른 글

Simple Regression  (0) 2021.04.05
Clustering  (0) 2021.03.24
Linear Algebra +  (0) 2021.03.21
Vector / Matrix  (0) 2021.03.21
Bayesian  (0) 2021.03.19