-> 범위 or 분포 같게 만들기
EX)
import pandas as pd
df=pd.DataFrame({
'A':['a','b','c','a','b'],
'B':[1,2,3,1,0]
})
- fit -> transform
from sklearn.preprocessing import LabelEncoder
le=LabelEncoder()
le.fit(df['A'])
df['le_A']=le.transform(df['A']) # 변환한 값 컬럼으로 만들어주기
- 한번에 fit, transform
df['le_A']=le.fit_transform(df['A'])
반대로 문자 <- 숫자
le.inverse_transform(df['le_A'])
EX)
df=pd.DataFrame({
'A':[10,20,-10,0,25],
'B':[1,2,3,1,0]
})
fit
from sklearn.preprocessing import MinMaxScaler
mms=MinMaxScaler()
mms.fit(df)
mms.datamax, mms.datamin, mms.datarange # 값 확인
transform
df_mms=mms.transform(df)
복구
mms.inverse_transform(df_mms)
3. standard scaler : 표준화
from sklearn.preprocessing import StandardScaler
ss=StandardScaler()
ss.mean, ss.scale # 평균, 표준편차
df_ss=ss.fit_transform(df)
4. robust scaler