본문 바로가기

파이썬/머신러닝,딥러닝

특성 스케일 맞추기

- 결정트리와 랜덤 포레스트는 특성 스케일 조정에 영향을 받지 않는 알고리즘

 

경사하강법 (gradient descent) 알고리즘을 구현하면서 보았듯이

대부분의 머신러닝과 최적화 알고리즘은 특성의 스케일이 같을 때 훨씬 성능이 좋다.

 

특성 스케일 조정의 중요성

 

두 개의 특성에서 첫번째 특성이 1에서 10 사이의 스케일을 가지고 있고

두 번째 특성은 1 에서 10만 사이의 스케일을 가진다고 가정해보자.

 

아달린에서 제곱 오차 함수를 생각해보면 알고리즘은

대부분 두 번째 특성에 대한 큰 오차에 맞추어 가중치를 최적화 할 것이다.

 

유클리디안 거리 지표를 사용한 K - 최근접 이웃 (KNN) 또한 샘플간의 거리를 계산하면 두 번째 특성 축에 좌우한다.

 

 

스케일이 다른 특성을 맞추는 방법

  • 정규화 (Nomalization) , 표준화 (Standardization)

대부분의 정규화는 특성의 스케일을 [0,1] 에 맞추는 것을 의미 : 최소 - 최대 스케일 변환 (Min-Max scaling) 의 특별한 경우

 

 

최소 - 최대 스케일  변환

최소 - 최대 스케일 변환을 통한 정규화는 정해진 범위의 값이 필요할 때 유용하게 사용할 수 있다.

표준화

표준화는 많은 머신러닝 알고리즘, 특히 경사하강법 같은 최적화 알고리즘에서 널리 사용된다.

 

로지스틱 회귀와 SVM 같은 여러 선형 모델은 가중치를 0 또는 0 에 가까운 작은 난수로 초기화한다.

표준화를 사용하면 특성의 평균을 0 에 맞추고 표준편차를 1로 만들어 정규 분포와 같은 특징을 가지도록 만든다.

이는 가중치를 더 쉽게 학습할 수 있도록 한다.

 

또한 표준화는 이상치 정보가 유지되기 때문에 제한된 범위로 데이터를 조정하는 최소-최대 스케일 변환에 비해

알고리즘이 이상치에 덜 민감하다.

 

- 표준화 공식 -