Summary
범주형 데이터를 머신러닝에 알맞은 특성으로 변환하는 다양한 전략을 소개합니다.
* 범주형 데이터 인코딩
- 순서가 없는 범주형 특성 인코딩: sklearn의 LabelBinarizer 사용하여 one-hot encoding (5.1)
one_hot = LabelBinarizer()
one_hot.fit_transform(feature)
- 순서가 있는 범주형 특성 인코딩: pandas dataframe의 replace 메서드 사용. 문자열 레이블을 수치값으로 변환 (5.2)
scale_mapper = {'Low': 1, 'Medium': 2, 'High': 3}
dataframe['Score'].replace(scale_mapper)
- 특성 딕셔너리를 인코딩: sklearn의 DictVectorizer 사용. 기본적으로 sparse matrix 반환 (5.3)
dictvectorizer.fit_transform(dictionary)
* 누락된 클래스 값 대체하기 (5.4)
- 머신러닝 분류 알고리즘을 훈련하여 누락된 값을 예측. KNN 분류기 사용
- 누락된 값을 특성에서 가장 자주 등장하는 값으로 채우기. sklearn의 SimpleImputer 사용
* 불균형 클래스 다루기 (5.5)
- 더 많은 데이터 모으기
- 불가능하면 모델 평가 지표 바꾸기: accuracy보다 precision, recall, F1-measure, ROC curve 등
- 잘 동작하지 않으면 클래스 가중치 매개변수 사용하기
- 혹은 다운샘플링 or 업샘플링 코려하기