data-science-summary/summary

Robust scaling 하는법 in python

고수트 2020. 9. 16. 20:28
반응형

<엔지니어는 구현을 못하면 모르는것이다>

Robust scaling 은 중앙값 0, 사분위수의 제3사분위수에서 제1사분위수를 뺀값인 IQR이 1이 되도록 변환하는 방법을 말한다.

아웃라이어의 영향을 최소화한다는 특징을 가진다.

import pandas as pd
from sklearn.preprocessing import RobustScaler

data = [[ 1., -2.,  2.], [ -2.,  1.,  3.], [ 4.,  1., -2.]]
df = pd.DataFrame(data, columns=['a','b','c'])
colnames = df.columns

scaler = RobustScaler()
scaler.fit(df)
# Robust scaling
print(scaler.transform(df))
# 원레 데이터의 중앙값, IQR
print('meadian : ', scaler.center_)
print('IQR : ', scaler.scale_)
new_colnames = [i+'_rs' for i in colnames] 
pd.concat([df, pd.DataFrame(scaler.fit_transform(df[colnames]), columns=new_colnames)], axis=1)

 

 

 

반응형