일반적으로 데이터를 전처리에는 세 가지 방법을 활용합니다.
경험상으로 일단 결과를 대충 보고싶을 때, 이 세 가지를 먼저 전처리에 사용한 후에 모델을 만들어 테스트해보고 다른 전처리로 넘어가는 것을 추천드립니다.
(빠르고 쉽기떄문)
MinMax(Normalization)
일정 범위로 scaling을 적용해줍니다. 대표적으로 [0, 1]을 많이 사용합니다.
Robust Normalization
평균과 표준편차 대신에 사분위값을 이용합니다.
사분위값을 이용하므로 이상치에 영향을 덜 받습니다.
내 기억에 정규화는 Vanishing, explode 문제 떄문에 해줬던 것 같다. 실제 신경망이 아닌 다른 알고리즘 사용에서도 큰 값은 피하지만..
Standardization
mean 차감을 통해 zero-centered화를 시켜주고 std로 나누어줌으로써 데이터가 일정 범위 안에 머무르게 합니다.
cs231n에 따르면 평균, 표준편차는 train set의 값을 써야한다는 점입니다. 즉, 데이터셋을 train,val,test로 나눈 뒤, train set의 mean, std를 구하여 val, test set 각각에 적용시켜주어야 합니다.
Reference
http://aikorea.org/cs231n/neural-networks-2-kr/
'# Machine Learning > 글 공부' 카테고리의 다른 글
릿지회귀, 라쏘회귀, 엘라스틱넷 (0) | 2019.03.19 |
---|---|
Deep Neural Network에서의 bias, variance (0) | 2019.03.18 |
[Ubuntu 16.04] CUDA + Cudnn 설치하기 (3) | 2019.03.04 |
superpixel algorithm 이란? (0) | 2019.03.02 |
DataFrame, Series, NumPy, dtype에 관해서(error issue) (0) | 2019.02.22 |