본문 바로가기
Data Analysis

sklearn Scaler

by but_poor 2022. 2. 19.

 

[Ensemble]

  만약 어떤 특이한 동전이 있는데 이 동전이 앞면이 나올 확률이 51%, 뒷면이 나올 확률이 49%인 동전이라고 해봐요. 이 동전을 10번 던졌을 때보다 100번 던졌을 때, 100번 던졌을 때보다 10,000번 던졌을 때, 10,000번 던졌을 때보다 1,000,000번 던졌을 때, 1,000,000번 던졌을 때보다 1,000,000,000번 던졌을 때 앞면이 나온 백분율이 51%에더 더 가까워질 거에요. 이를 큰 수의 법칙이라고 하는데 머신러닝에서 앙상블은 이 큰 수의 법칙을 이용해서 약한 성능을 가진 여러 모델을 모아 위원회를 만들고 이 위원회에서 더 많이 투표한 답을 Output으로 가져가는 기법이에요.

 

[Over-fitting]

  반면에 MLP(Multi Layer Perceptron) 같은 모델은 node가 많아지면 많아질 수록, Train Dataset이 Validation 또는 Test Dataset에 비해 더 커질수록, 모델의 Hyper Parameters fitting을 deep하게 하면 할 수록, Train Dataset에 대한 설명력은 높아지지만 모델은 복잡해지고 Train Dataset에 Over-fitting(과적합)될 가능성이 높아져요. 특히, 예를 들면 이럴 때 모델은 0~1의 실수값을 가지는 데이터에 비해 1~100의 값을 가지는 Column에 더 예민하게 반응하고 학습하게 돼요.

 

[Data Scailing]

  이를 예방하기 위해 데이터 Column별로 데이터의 최대 값과 최소 값의 차이가 큰 경우에 Scaling이라는 기법을 써요. 위 그래프를 보면 알 수 있다시피 0~700 까지의 value를 가지는 Original Dataset이 있다고 했을 때, MinMaxScaler는 0과 1사이의 값으로 스케일링을 해주고, StandardScaler는 0을 중심으로 평균과 표준편차, 분산을 이용해 value를 스케일링 해주게 돼요. 그 외에도 RobustScaler도 있는데 나중에 따로 다룰게요.

 

  MinMaxScaler의 경우에는 데이터의 분포에서 아주 튀는 특이값(이상치)이 있을 때 특이값을 제외한 데이터들을 특정 구간에 몰아버리기 때문에 특이값(이상치)가 있을 땐 StandardScaler를 써주는 게 좋아요. 반면에 음수를 쓸 수 없는 상황이거나 Column 간 bias가 아주 비슷하게 형성되면 모델이 띨띨해질 수 있어요.

 

  따라서 Scaler는 사용자가 handling하려는 data의 성격에 맞게 적절하게 골라 쓰는게 중요해요.

댓글