High-Dimensional Data


Linear Algebra


1. Vector transformation

1.1 Eigenvector ( 고유벡터 )

Q . Eigenvector란?
A . Transformation에 영향을 받지 않는 회전축, (혹은 벡터)을 공간. 크기만 변하고 방향은 변화 하지 않는 벡터

  • Transformation : matrix를 곱하는 것을 통해, 벡터(데이터)를 다른 위치로 옮긴다는 의미

1.2 Eigenvalue ( 고유값 )

Q . Eigenvalue란?
A . Eigenvector의 크기를 변화시키는 값인 스칼라값( 고유값 )을 eigenvalue라고 한다.

  • 표기 : λ\lambda

1.3 Dimension

  • Feature의 수를 P, sample의 수를 N이라 할 때, P ≥ N 인 경우 매우 높은 overfitting 이슈가 생긴다.

1.3.1 Feature selection

Feature Selection이란, 데이터셋에서 덜 중요한 feature를 제거 하는 방법

1.3.2 Feature Extraction

Feature Extraction, 기존에 있는 Feature 혹은 그들을 바탕으로 조합된 Feature를 사용한다. PCA도 feature extraction의 예시이다.

Q . Selection 과 Extraction의 차이는?
A .

  • Selection
    • 장점 : 선택된 feature 해석이 쉽다.
    • 단점 : feature들간의 연관성을 고려해야된다.
    • Ex. LASSO, Genetic algorithm
  • Extraction
    • 장점 : Feature들간의 연광성 고려된다. Feature수 많이 줄일 수 있다.
    • 단점 : Feature 해석이 어려움
    • Ex. PCA, Auto-encoder

2. Principal Component Analysis (PCA)

Q . PCA란?
A . 낮은 차원으로 축소하여 고차원 데이터를 효과적으로 분석 하기 위한 기법이다.

  • 고유값과 고유벡터로 새로운 축을 만들어서 그축을 기준으로 압축해서 설명력이 가능 높은게 pc1 각각의 직교들이 설명력이 높은 순서대로 pc2이다.
  • 시각화해서 데이터를 이해하기 쉽게 한다 + Clustering
  • 중요한것들만 남길 수 있다
  • 연산량이 감소한다.
  • 고차원의 데이터 정보( 분산 )를 최대한 유지하는 벡터를 찾고, 해당 벡터에 대해 데이터를 ( Linear )Projection
  • 데이터 분산 = 정보

2.1 PCA 과정

1. 데이터 준비
2. 각 열에 대해서 평균을 빼고, 표준편차로 나누어서 Normalize
3. Z의 분산-공분산 매트릭스를 계산
4. 분산-공분산 매트릭스의 고유벡터와 고유값을 계산
5. 데이터를 고유 벡터에 projection 시킴( matmul 함수 )

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

# 데이터 X에 대해

# 표준화
scaler = StandardScaler()
Z = scaler.fit_transform(X)

# pca 2 적용
pca = PCA(2)

# pca 적용
pca.fit(Z)

# Eigenvectors
pca.components_

# Eigenvalues
pca.explained_variance_

# Projection
B = pca.transform(Z) # 혹은 Z = np.matmul(standardized_data, vectors)

2.2 PCA 특징

  • 데이터에 대해 독립적인 축을 찾는데 사용 할 수 있음
  • 데이터의 분포가 정규성을 띄지 않는 경우 적용이 어려움
    • 이 경우는 커널 PCA 를 사용 가능
  • 분류 / 예측 문제에 대해서 데이터의 라벨을 고려하지 않기 때문에 효과적 분리가 어려움
    • 이 경우는 PLS 사용 가능


👉 과정 한눈에 보기

profile
기록하지 않으면 기록되지 않는다.

0개의 댓글