[Machine Learning with Python Cookbook] ch5. Category Data

4월 11, 2021





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 업샘플링 코려하기


Code