ggoggo

차원축소 본문

3-1/기계학습

차원축소

chchae01 2022. 6. 12. 20:43
  • 머신러닝을 이용한 데이터 분석 과정

(1) 데이터 수집

(2) 탐색

(3) 전처리 : 정규화, 차원축소, 영상처리

(4) 머신러닝 알고리즘 저굥

(5) 성능 평가

(6) 결과 정리 및 시각화

 

  • 차원 축소의 개요

"차원의 저주 (Curse of dimensionality) "

 

: 차원이 증가할수록 동일 정보량을 표현하기 위해 필요한 데이터의 수는 지수적으로 증가!

: 데이터 학습을 위해 차원이 증가하면서 학습 데이터 수가 차원 수보다 적어져 모델의 성능이 저하되는 현상

   => 차원이 증가할수록 개별 차원 내 학습할 데이터 수가 적어지는(sparse) 현상 발생

< 해결법 >

(1) 도메인 지식을 이용 => 중요한 특성만 사용

(2) 목적 함수에 Regularization term 추가

(3) 차원 축소 기술을 전처리로 사용

 

- 차원 축소의 배경

 

이론적으로 차원의 증가는 모델 성능을 향상시키지만 모든 변수가 서로 독립일 경우만 가능

=> 실제로 차원의 증가는 모델 성능 저하를 가져옴(모든 변수는 서로 상관관계 있고, 노이즈 존재)

 

- 차원 축소 목적 = 모델의 성능을 최대로 해주는 변수의 일부 set 찾기

 

- 차원 축소 효과

(1) 변수간 상관관계 제거

(2) 단순한 후처리

(3) 적절한 정보를 유지하면서 중복되거나 불필요한 변수를 제거

(4) 시각화 가능

 

차원축소 : PCA

  • 주성분 분석(PCA)

<목적>

- 차원을 줄이는 비지도 학습 방법 중 한가지

- 사영 후 원 데이터의 분산을 최대한 보존할 수 있는 기저를 찾아 차원을 줄이는 방법

- 데이터를 사영시킬 경우 손실되는 정보의 양이 적은 쪽의 기저(축)을 주성분으로 선택

 

  • 주성분 분석 이슈

- 몇개의 주성분을 사용해야 할까?

   (1) 고유 값 감소율이 유의미하게 낮아지는 Elbow point에 해당하는 주성분을 선택

   (2) 일정 수준 이상의 분산비를 보존하는 최소의 주성분을 선택

 

  • 주성분 분석 한계점

1) 데이터 분포가 가우시안이 아니거나 다중 가우시안 자료들에 대해서는 적용하기 어려움

2) 분류 문제를 위해 디자인되지 않음, 즉 분류 성능 향상을 보장하지 못함

 

차원축소 알고리즘

 

1. Randomized PCA

- 자료의 크기 또는 특성변수의 크기가 매우 크면 주성분 W를 구하기 위한 SVD 계산이 불가능하거나 시간이 많이 소요됨

- 이런 경우 RandomizedPCA가 유용

- RandomizedPCA는 QR분해를 이용하여 행렬의 SVD를 수행함

 

2. Kernelized PCA

- PCA는 선형 변환이고 Kernelized PCA는 비선형 변환임

- SVM의 커널트릭을 PCA에서도 사용

- 특성 변수x를 비선형 h(x)로 변환한 후 이에 대해 PCA를 하여 차원 축소를 하는 방법임

 

'3-1 > 기계학습' 카테고리의 다른 글

데이터 전처리  (0) 2022.06.13
군집화  (0) 2022.06.12
앙상블  (0) 2022.06.08
교차검증  (0) 2022.06.08
SVM  (0) 2022.06.08