일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 그룹
- SQL
- 이전행
- ABTest
- 데이터분석
- WAU
- DAU
- data
- dataanalyst
- 통계
- 코테
- 특정컬럼
- 리텐션
- row추가
- 그로스마케터
- pvalue
- 데이터가공
- 데이터분석가
- 표본
- categorical
- GTM
- engagement
- INSERTINTO
- 데이터
- onehot
- dataanalysis
- Python
- warehouser
- sql로데이터
- 전처리
- Today
- Total
Meiren
[ML/preprocessing] Data Scaling (데이터 스케일링) 본문
When?
데이터의 값이 너무 크거나 너무 작은 경우,
( = 특성별로 값의 스케일이 다르면)
모델 학습 과정에서 0으로 수렴하거나 무한히 발산해버림
What?
데이터 값의 범위(스케일)를 조정
- scaler.fit() : train set에만 적용, 데이터 변환을 학습
- scaler.transform() : 실제로 데이터 변환을 수행, train & teset 모두 적용
MinMax
- 모든 feature가 0 ~ 1사이에 위치
- 이상치가 존재할 경우, 매우 좁은 범위로 압축될 수 있음
Standard
- N ~ (0, 1)
- 각 feature의 평균이 0, 분산이 1
- 모든 feature들이 같은 스케일을 갖게됨
- 이상치로부터 영향을 많이 받음
- 데이터의 최소/최대값을 모를 떄 사용
Robust
- 모든 특성들이 같은 크기를 갖는다 (stadard와 유사)
- 모든 feature들이 같은 스케일을 갖게됨
- median, quartile
- 데이터의 중앙값 = 0, IQE = 1이 되도록 스케일링
- 이상치 영향을 최소화 시킴
Normalize
- standard, ronust, minmix가 각 coumns의 통계치를 이용하는 반면
- normalizer는 row마다 각각 정규화된다
- 유클리드 거리가 1이 되도록 데이터 조정(L2 Distance)
- spherical contour(구형윤곽)을 갖게되어 좀 더 빠른 학습과 과적합 확률 낮춤
Log
- 왜도와 첨도를 가진 변수를 > 정규분포에 가깝게 만들어 줌 > 왜도(비대칭)와 첨도(뾰족한정도)를 줄여줌
- 큰 수치를 같은 비율의 작은 수치로 변환 > 복잡한 계산이 간편해짐
- 데이터간 편차가 큰 경우 로그를 취하면 의미있는 결과 도출 가능성 커짐
- 정규성을 높이고 회귀분석 등에서 정확한 값을 얻기 위함
- 로그변환 전,
seaborn의 displot으로 왜도와 첨도 확인
sns.displot(df['col'])
np.log1p(df['col'])
- MinMaxScaler : 데이터가 0과 1 사이에 위치하도록 스케일링
- MaxAbsScaler : 데이터가 -1과 1 사이에 위치하도록 스케일링
- StandardScaler : 데이터의 평균 = 0, 분산 = 1이 되도록 스케일링
- RobustScaler : 데이터의 중앙값 = 0, IQE = 1이 되도록 스케일링
'머신러닝(machine learning)' 카테고리의 다른 글
[ML/Evaluation] Confusion Matrix (모델 성능 평가 지표, 오차행렬) (0) | 2022.11.29 |
---|---|
[ML] LogisticRegression(로지스틱 회귀) (1) | 2022.11.29 |
[ML/전처리] Imbalanced Data Sampling (0) | 2022.11.29 |
[ML/전처리] Data Sampling (2) | 2022.11.29 |
[ML/전처리] encoding - label vs onehot (0) | 2022.11.29 |