함께하는 데이터 분석

[Scikit Learn] MaxAbs Scaling 본문

데이터분석 공부/ML | DL

[Scikit Learn] MaxAbs Scaling

JEONGHEON 2022. 5. 10. 20:46

안녕하세요.

 

오늘은 Scaling 중 하나인 MaxAbs Scaling을 살펴보겠습니다.

 

바로 시작해볼게요!

 

 

 

 

MaxAbs Scaling

MaxAbs Scaling은 데이터의 최대 절댓값이 1, 0이 0으로 스케일링됩니다.

 

즉, 절댓값이 0에서 1 사이로 매핑되므로 결과적으로 -1에서 1 사이로 스케일링됩니다.

 

Standard Scaling,  Min-Max Scaling과 마찬가지로

 

이상치에 민감하며 앞 2개의 Scaling에 비해 상대적으로 덜 사용됩니다.

 

이제 Python의 Scikit Learn을 통해 스케일링을 해보겠습니다.

 

 

 

 

라이브러리 불러오기

import numpy as np
import pandas as pd
import seaborn as sns
import sklearn

 

 

 

 

데이터 불러오기 및 정제하기

mpg = sns.load_dataset('mpg')

mpg.head()

seaborn 라이브러리의 mpg데이터를 불러왔습니다.

 

스케일링을 하기 위해 mpg데이터를

 

수치형 변수로만 이루어진 데이터로 만들어주겠습니다.

 

numerical_mpg = mpg.dtypes[mpg.dtypes != "object"].index.tolist()

numerical_mpg

>>> ['mpg',
     'cylinders',
     'displacement',
     'horsepower',
     'weight',
     'acceleration',
     'model_year']

수치형 변수들입니다.

 

mpg = mpg[numerical_mpg]

mpg.head()

 

mpg.describe()

이제 본격적으로 MaxAbs Scaling을 진행해볼게요.

 

 

 

 

Scikit Learn을 활용한 MaxAbs Scaling

from sklearn.preprocessing import MaxAbsScaler

MAscaler = MaxAbsScaler

sklearn의 preprocessing 패키지에 MaxAbsScaler가 있습니다.

 

그리고 MAscaler로 MaxAbsScaler를 할당시켰습니다.

 

skmpg = MAscaler.fit_transform(mpg)

이후 sklearn mpg의 약자인 skmpg에 MaxAbs Scaling을 할 mpg데이터를 할당했습니다.

 

이제 MaxAbs Scaling이 제대로 진행됐는지 확인하겠습니다.

 

skmpg.describe() # sklearn 사용하면 numpy.ndarray

이제는 익숙하죠?

 

pandas를 활용하여 데이터 프레임 형식으로 변경해주겠습니다.

 

skmpg = pd.DataFrame(skmpg, columns = mpg.columns)

이제 head와 describe를 통해

 

스케일링이 제대로 진행됐는지 살펴보겠습니다.

 

skmpg.head()

 

skmpg.describe()

최댓값은 존재하므로 max는 1이 된 것을 확인할 수 있는데

 

min 값에 0이 없는 것을 보아 값이 0인 데이터는 없다는 것을 유추할 수 있습니다.

 

다음에는 마지막으로 공부할 스케일링인

 

Robust Scaling을 살펴보겠습니다!

'데이터분석 공부 > ML | DL' 카테고리의 다른 글

[Scikit Learn] One-Hot Encoding  (0) 2022.05.13
[Scikit Learn] Label Encoding  (0) 2022.05.13
[Scikit Learn] Robust Scaling  (0) 2022.05.10
[Scikit Learn] Min-Max Scaling  (1) 2022.05.10
[Scikit Learn] Standard Scaling  (0) 2022.05.10