Preprocessing - Data Scaling

Coaspe·2021년 11월 2일
0

Data Science

목록 보기
2/5

Scaling

1. Definition

  • numerical data들은 서로 scale 차이가 너무 많이 나면 모델의 학습이 원활하게 되지 않는 경우가 있다.
  • 예를 들어 KNN의 경우 Eucliean distance를 사용할 때
    (109)2+(10000029900)2\sqrt{(10-9)^2 + (100000-29900)^2 \cdots}
    이런 식으로 되어 버리면 두번째 column의 영향력이 너무 강해져서 첫번째 column은 무시될 수 있다. 그러므로 column별로 scaling을 해줘야 한다.
  • 대표적으로 Standardization(표준화)과 Normalization(정규화)이 있다.
  • 보통 categorical variables에는 사용하지 않는다.

2. Techniques

1. StandardScaler()

  • feature들의 mean을 0, variance를 1로 scailing하는 방법이다.
  • outlier에 매우 민감하다.
  • regression보다 classification에 성능이 더 좋다.

2. MinMaxScaler()

  • Min-Max Normalization 이라고도 불린다.
  • Feature들을 특정 범위(주로 [0,1] -> 가장 작은 값은 0, 가장 큰 값은 1)로 scaling하는 것이다.
  • 마찬가지로 outlier에 민감하다.
  • classification 보다 regression에 성능이 더 좋다.

3. MaxAbsScaler()

  • Feature의 절대값이 0과 1 사이가 되도록 scaling한다.
  • 모든 값은 -1과 1 사이로 표현되며 양수라면 MinMaxScaler와 같다.
  • outlier에 민감하다.

4. RobustScaler()

  • mean과 variance 대신에 median과 Interquartile range(사분위 값)를 사용하여 outlier의 영향을 최소화 한다.

5. Normalizer()

  • 앞선 4개의 Scaler는 각 colum의 통계치에 사용되지만 Normalizer는 row 마다 적용되는 방식이다.
  • 한 row의 모든 feature들 사이의 Euclidean distance가 1이 되도록 scaling 한다.
  • 일반적인 data preprocessing의 상황에서 사용되는 것이 아니로 model내의 학습 벡터에 적용되며 feature들의 단위가 다르면 더욱 사용하지 않는다.
profile
https://github.com/Coaspe

0개의 댓글