ggoggo
차원축소 본문
- 머신러닝을 이용한 데이터 분석 과정
(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를 하여 차원 축소를 하는 방법임