수치형 데이터 전처리
by Cori개요
키와 몸무게 등 수치형 데이터들을 전처리 해야 하는 이유와, 수행하는 방법에 대해 알아본다.
내용 정리
1. Feature Scaling (정규화)
0) 정의
· 각 피처가 가지는 값들의 숫자 범위 (척도, Scale)이 다를 경우 이 값의 범위를 일정한 범위로 맞추는 작업
· 트리 계열을 제외한 대부분의 머신러닝 알고리즘들이 Feature간의 서로 다른 척도에 영향을 받음
· Scaling (정규화)은 train set으로 fitting하며, test set이나 예측할 새로운 데이터는 train set으로 fitting 한 것으로 변환
* 같은 100이라는 숫자 데이터도 키가 100cm인 것과 무게가 100g인 것은 큰 차이가 있다. 이에 이러한 범위를 일정하게 맞춘다.
1) 함수
· fit(): 어떻게 변환할 지 학습
· transform(): 변환
· fit_transform(): 학습과 변환을 한번에 처리
2) 표준화 (StandardScaler)
· Features의 값들이 평균: 0, 표준편차: 1인 범위 (표준정규분포)에 있도록 변환한다. (0을 기준으로 모든 데이터들이 모여있게 됨)
· SVM, 선형회귀, 로지스틱 회귀 알고리즘에 대해 표준화를 수행하면 대부분의 경우 성능이 향상됨
* sklearn.preprocessing.StandardScaler 이용
ex) Iris Dataset 표준화
· 데이터셋 로드 및 탐색
· Standard Scaler 적용
3) MinMaxScaler
· 데이터셋의 모든 값을 0 (Min value)과 1(Max value) 사이의 값으로 변환한다.
* sklearn.preprocessing.MinMaxScaler 이용
ex) Iris Dataset MinMaxScaling
2. 위스콘신 유방암 데이터셋 Feature Scaling
0) 위스콘신 유방암 데이터셋
· 암측정값들, 진단결과 컬럼들로 구성되어 있음
· 모든 Feature들은 연속형이다.
· scikit-learn에서 toy dataset으로 제공하며, load_breast_cancer() 함수로 로드 할 수 있다.
1) Feature Scaling
· 데이터셋 로드
· Train, Validation, Test Dataset 분리
· standard scaling
-> train set으로 fit한 모델을 이용해 train / validation / test set을 변환한다.
X_train 데이터셋을 fit_transform() 함으로써 Scaler에 fit을 완료하였기 때문에 이후 작업에 대해서는 transform만 해주면 된다.
· scaling 전 데이터셋
· scaling 후 데이터셋
· MinMax scaling
· minmax scaling 결과 값
'AI > Machine Learning' 카테고리의 다른 글
불균형 클래스 분류 다루기 (0) | 2021.11.28 |
---|---|
과적합과 일반화 (0) | 2021.11.26 |
One-Hot Encoding (0) | 2021.11.24 |
Label Encoding (0) | 2021.11.23 |
데이터셋 나누기 & 교차 검증 (0) | 2021.11.22 |
블로그의 정보
코딩하는 오리
Cori