기초지식
Data Scaling
cho.nii
2024. 5. 8. 17:29
Data Scaling ?
- 데이터 전처리 과정 중 하나
- feature들마다 제각각인 데이터값의 범위에 대해 범위 차이가 클 경우, 모델 학습 시 0 또는 무한으로 발산할 수 있는 문제점을 해결할 수 있는 한가지 방안
- 데이터 스케일링을 거치면 모든 피처들의 데이터 분포나 범위를 동일하게 조정할 수 있게 된다.
(1) StandardScaler()
- 모든 피처들이 평균 0, 분산 1인 정규분포를 갖도록 표준화한다.
- 단, 데이터 내에 이상치가 있는 경우, 평균과 분산에 큰 영향을 주므로 스케일링 방법으로 적절하지 않다.
(2) MinMaxScaler()
- 모든 피처들이 0과 1 사이의 데이터값을 갖도록 한다, 즉 피쳐별로 최솟값은 0이고 최댓값은 1이 된다.
- StandardScaler와 동일하게 이상치가 존재한다면 이상치가 극값이 되어 데이터가 아주 좁은 범위에 분포하게 되므로 스케일링 방법으로 적절하지 않다.
(3) MaxAbsScaler()
- 모든 피처들의 절댓값이 0과 1 사이에 놓이도록 만들어준다. 즉, 0을 기준으로 절댓값이 가장 큰 수가 1 또는 -1을 가지게 된다.
- 마찬가지로, 이상치의 영향을 크게 받아 이상치가 존재하는 경우 해당 방법은 적절하지 않다.
(4) RobustScaler()
- StandardScaler와 비슷하나, 평균과 분산을 사용한 StandardScaler와는 달리 RobustScaler는 중간값(median)과 사분위값(quartile)을 사용한다.
- 따라서, 이상치의 영향을 최소화할 수 있다.
- 이상치를 제거하고, 그 나머지 데이터의 분포를 기반으로 . 각데이터를 스케일링하는 것과 유사함
(5) Normalizer()
- 각 피처(feature)의 통계치를 이용하는, 즉 열(columns)을 대상으로 하는 앞의 4가지 방법과는 달리, Normalizer의 경우 각 행(row)마다 정규화가 진행되는 방식이다.
- 이로써 한 행의 모든 피쳐들 사이의 유클리디안 거리가 1이 되도록 데이터 값을 만들어주어 좀 더 빠르게 학습할 수 있고 과대적합 확률을 낮출 수 있다.
** 유클리디안 거리(Eucledian distance): 공간에서의 두 점 사이의 거리를 의미하며 수학적으로는 두 점 사이의 차이를 제곱하여 루트를 씌운 꼴이다.
[참고] 정규화(Normalization)와 표준화(Standardization)
** 정규화: 값들을 특정 범위, 주로 [0, 1]로 스케일링하는 것
** 표준화: 평균을 0, 표준편차를 1이 되도록 값을 스케일링하는 것
참고 자료
https://dacon.io/codeshare/4526
sklearn으로 데이터 스케일링(Data Scaling)하는 5가지 방법🔥
dacon.io
https://blog.naver.com/mrp/221672080759
정규화와 표준화 Normalization vs Standardization
데이터 처리를 하다보면 데이터들의 스케일링 이슈가 중요한 요소로 작용하다는 걸 쉽게 알 수 있을 것이다...
blog.naver.com
https://velog.io/@bbdbbdb337/Robust-Scaling-%EC%9D%B4%EB%9E%80