결측치 처리
import pandas as pd
# 행 기준 제거
df.dropna(inplace=True)
이상치(Outlier) 처리
Feature 타입 별 전처리
레이블 인코딩
고유값을 0부터 1씩 증가하는 값으로 변환하는 방식
숫자의 차이가 모델에 영향을 미치지 않는 트리 모델에 적용한다.
import numpy as np
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
# 학습대상 == 변환대상
item_labels = le.fit_transform(items)
# 학습대상 != 변환대상
le.fit(items)
item_labels = le.transform(items)
# itmes가 레이블링 된 값
print(item_labels)
# items가 어떻게 레이블링 되었는지 확인
print(le.classes_)
# 디코딩
inverse_label = le.inverse_transform(item_labels)
print(inverse_label)
One-Hot 인코딩
N개의 클래스를 N차원의 One-Hot 벡터로 표현되도록 변환
#sklean 이용
from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder()
ohe.fit(items[..., np.newaxis])
items_ohe = ohe.transform(items[..., np.newaxis])
# class값 반환
print(ohe.get_feature_names_out())
#pd 이용
df_ohe = pd.get_dummies(df, columns=['item'])
```
from sklearn.preprocessing import StandardScaler
stn_scaler = StandardScaler()
result = stn_scaler.fit_transform(data)
print(result)
from sklearn.preprocessing import MinMaxScaler
mm_scaler = MinMaxScaler()
result = mm_scaler.fit_transform(x)
print(result)