4.2.2 클래스 레이블 인코딩
많은 머신 러닝 라이브러리는 클래스 레이블이 정수로 인코딩되었을 것이라고 기대합니다. 사이킷런의 분류 추정기 대부분은 자체적으로 클래스 레이블을 정수로 변환해 주지만 사소한 실수를 방지하기 위해 클래스 레이블을 정수 배열로 전달하는 것이 좋은 습관입니다. 클래스 레이블을 인코딩하려면 앞서 순서 특성을 매핑한 것과 비슷한 방식을 사용합니다. 클래스 레이블은 순서가 없다는 것을 기억하세요. 특정 문자열 레이블에 할당한 정수는 아무런 의미가 없습니다. enumerate를 사용하여 클래스 레이블을 0부터 할당합니다.8
>>> import numpy as np
>>> class_mapping = {label:idx for idx,label in
... enumerate(np.unique(df['classlabel']))}
>>> class_mapping
{'class1': 0, 'class2': 1}
그다음 매핑 딕셔너리를 사용하여 클래스 레이블을 정수로 변환합니다.
>>> df['classlabel'] = df['classlabel'].map(class_mapping)
>>> df
color size price classlabel
0 green 1 10.1 1
1 red 2 13.5 0
2 blue 3 15.3 1
8 역주 enumerate는 반복 가능한 객체(문자열, 리스트, 넘파이 배열 등)를 입력으로 받아 인덱스와 값의 튜플을 차례대로 반환하는 파이썬 내장 함수입니다.