scikit-learn

Theo Kim·2022년 12월 8일
0

label encoder

df = pd.DataFrame({
  'A': ['a', 'b', 'c', 'a', 'b'],
  'B': [1, 2, 3, 1, 0]
})

df

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
le.fit(df['A'])

주요 요소

le.classes_

le.transform(df['A'])

fit과 transform을 한번에 실행 역시 가능!

le.fit_transform(df['A'])

df['le_A'] = le.transform(df['A'])
df

하나하나 뭐로 변환했는지 물어보기 가능

le.transform(['c'])

역변환: 숫자를 다시 문자로 변환

le.inverse_transform(df['le_A'])

min-max scaling

df = pd.DataFrame({
  'A': ['a', 'b', 'c', 'a', 'b'],
  'B': [1, 2, 3, 1, 0]
})

df

from sklearn.preprocessing import MinMaxScaler

mms = MinMaxScaler()
mms.fit(df)

주요 요소

mms.data_max_, mms.data_min_, mms.data_range_

df_mms = mms.transform(df)
df_mms

역변환
mms.inverse_transform(df_mms)

역시 fit과 transform 한번에 실행 가능(fit_transform)

mms.fit_transform(df)

Standard Scaler

df

from sklearn.preprocessing import StandardScaler

ss = StandardScaler()
ss.fit(df)

주요 요소

ss.mean_, ss.scale_

df_ss = ss.transform(df)
df_ss

Robust Scaler

df = pd.DataFrame({
  'A': [-0.1, 0., 0.1, 0.2, 0.3, 0.4, 1.0, 1.1, 5.0]
})

df

MinMax, Standard, Robust Sclaer들 한번에 비교하기

from sklearn.preprocessing import MinMaxScaler, StandardScaler, RobustScaler

mm = MinMaxScaler()
ss = StandardScaler()
rs = RobustScaler()
df_scaler = df.copy()

df_scaler['MinMax'] = mm.fit_transform(df)
df_scaler['Standard'] = ss.fit_transform(df)
df_scaler['Robust'] = rs.fit_transform(df)
df_scaler

boxplot으로 시각화하여 차이 쉽게 확인하기

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme(style='whitegrid')
plt.figure(figsize=(16, 6))
sns.boxplot(data=df_scaler, orient='h');

profile
THEO's velog

0개의 댓글