ML study

[MLstudy] 1. 피처 엔지니어링 - 1) 피처 정규화

mlslly 2024. 4. 24. 12:25

 

피쳐 정규화 (Feature Normalization) 의 목적 

피쳐 정규화는 피쳐에 대한 정규화 처리로 서로 다른 지표들을 비교할 수 있도록 한다.

 

예를 들어 몸무게와 키가 건강에 미치는 영향에 대해서 분석한다고 할 때, 

몸무게는 50~100kg 사이의 범주에, 키는 160~180cm 사이의 범주에 일반적으로 있게 될텐데, 이때 분석 결과는 수치 범위가 넓은 체중 피쳐에 편향될 가능성이 높다. 

또한 두 값의 평균, 분산, min, max가 제각각이라면 두 피쳐에 대한 비교가 어렵고 모델의 학습 성능이 떨어질 확률이 높은 것.

 

수치형 데이터에 피쳐 정규화를 하면, 모든 피쳐를 대략 비슷한 수치 구간으로 이동시킬 수 있고, 피쳐끼리의 비교가 가능해진다.

 

피쳐 정규화의 종류 

1) 선형함수 정규화 Min-Max Scaling 

 

Min-Max 스케일링은 데이터에 대해 선형변환하여, 데이터를 동일한 비율로 확대 및 축소, 모든 결과값이 [0,1] 사이에 오도록 만든다.

$$ X_{norm} = \frac{X-X_{min}}{X_{max} - X_{min}} $$

 

2) 표준 정규화 Z-score Normalization 

 

Z-score 정규화는 모든 데이터에 대해서 평균이 0이고 표준편차가 1인 분포로 만든다. 

$$z = \frac{x-\mu }{\sigma }$$

 

 

피쳐 정규화의 중요성

수치형 데이터를 정규화 해야 하는 가장 중요한 이유중 하나는 경사하강법을 효율적으로 수행 할 수 있다는 점이다.

 

정규화되지 않은 데이터에서는 경사하강법은 스케일이 큰 피쳐 위주로 업데이트 될 것이고, 

알고리즘도 지그재그 형태의 학습 곡선을 그리면서 불필요한 step들을 더 오래 거치게 될 것이다.

반면 정규화된 데이터에서라면, 아래 오른쪽 그림에서와 같이 손실함수가 더 원형을 띌 것이고, 

학습률이 동일하다는 가정 하에서 더 빠르게 최적해에 근접, 즉 최소 손실 지점을 찾을 수 있을 것이다.