소소한 컴퓨터 이야기

수치형 데이터 전처리

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

활동하기