Coaspe
로그인
Coaspe
로그인
Preprocessing - Data Scaling
aspalt85
·
2021년 11월 2일
0
MaxAbsScaler
MinMaxScaler
Normalizer
RobustScaler
StandardScaler
scaling
0
Data Science
목록 보기
2/5
Scaling
1. Definition
numerical data들은 서로 scale 차이가 너무 많이 나면 모델의 학습이 원활하게 되지 않는 경우가 있다.
예를 들어 KNN의 경우 Eucliean distance를 사용할 때
(
10
−
9
)
2
+
(
100000
−
29900
)
2
⋯
\sqrt{(10-9)^2 + (100000-29900)^2 \cdots}
(
1
0
−
9
)
2
+
(
1
0
0
0
0
0
−
2
9
9
0
0
)
2
⋯
이런 식으로 되어 버리면 두번째 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들의 단위가 다르면 더욱 사용하지 않는다.
Coaspe
https://github.com/Coaspe
이전 포스트
Data Preprocessing - Encoding
다음 포스트
Preprocessing - Dealing with Outliers, Missing values
0개의 댓글
댓글 작성