정리필요/Data analysis 코드 분석 및 이론

[개념] 표준화 & 정규화

kstar2 2021. 3. 18. 19:04

Q. 정규화 또는 표준화의 필요성?

 

feature들의 각 특성의 단위도 다르고 값의 범위도 차이가 있다.

즉, 단위가 다르면 직접적인 비교가 불가능하다. 혹은 단위는 같으나 범위가 다르면 완전히 다른 경우가 된다.

그래서 feature들의 값의 범위를 비슷하게 만들어 주는 것이 정규화 또는 표준화이다. 

그리고 이렇게 정규화와 표준화를 해주는 것을 feature scaling 또는 data scaling이라고 한다.

요약 : feature를 직접 비교하기 위해 범위와 단위를 비슷하게 만들어 줘야 해서

Q. 정규화는 뭐고 표준화는 무엇인가?

 

1. 정규화 (normalization)

- 이 공식을 이용하면 가장 큰 값은 1로, 가장 작은 값은 0으로 변환된다.

- 변환해주면 모두 [0, 1]의 범위를 갖게 된다.

- 학습 전에 scaling하는 것

  • 머신러닝에서 scale이 큰 feature의 영향이 비대해지는 것을 방지
  • 딥러닝에서 Local Minima에 빠질 위험 감소(학습 속도 향상)

- skikit-learn에서 MinMaxScaler

 

Ps. Local Minima 문제란? 

loss function에서 global Minmimum을 찾기 위해 optimizer가 이를 하는데 착각하여 loss function이 수많은

local minimum 중에서 global minimum에 해당하지 않는 곳에 빠져 버리는 문제이다.

2. 표준화 (standardiation)

- 여기서 μ는 한 feature의 평균값이고, σ는 표준편차이다. 즉, 정규분포의 표준화 공식이다.

- 값의 범위(scale)를 평균 0, 분산 1이 되도록 변환한다.

- 학습 전에 scaling하는 것

  • 머신러닝에서 scale이 큰 feature의 영향이 비대해지는 것을 방지
  • 딥러닝에서 Local Minima에 빠질 위험 감소(학습 속도 향상)

- 정규분포를 표준정규분포로 변환하는 것과 같음

  • Z-score(표준 점수)
  • -1 ~ 1 사이에 68%가 있고, -2 ~ 2 사이에 95%가 있고, -3 ~ 3 사이에 99%가 있음
  • -3 ~ 3의 범위를 벗어나면 outlier일 확률이 높음

- scikit-learn에서 StandardScaler

 

3. Regularization

- weight를 조정하는데 규제(제약)를 거는 기법

- overfitting을 막기위해 사용

- L1 regularization, L2 regularization 등의 종류가 있음

  • L1 : LASSO(라쏘), 마름모
  • L2 : Lidge(릿지), 원

 

'정리필요 > Data analysis 코드 분석 및 이론' 카테고리의 다른 글

[개념] L1과 L2  (0) 2021.03.18
[코드분석] 데이터 시각화(1)  (0) 2021.03.17