더북(TheBook)

딥러닝은 통계 알고리즘을 기반으로 하기 때문에 범주 정보를 숫자로 변환해야 합니다(CSV 파일은 범주 정보로 구성되어 있습니다). 이를 위해 원-핫 인코딩(one-hot encoding) 방법을 사용합니다(원-핫 인코딩은 ‘6장 합성곱 신경망 II’에서 자세히 다룹니다). 원-핫 인코딩은 범주형 데이터에 대해 고윳값을 갖는 새로운 열을 생성하는데, 고윳값을 갖는 경우 1 값을 부여합니다. 다음 코드로 간단히 살펴보겠습니다. 이 장의 코드는 맛보기 코드이므로 흐름만 간략히 익히고 넘어갑니다.

코드 2-4 원-핫 인코딩 적용

price = pd.get_dummies(cars.price, prefix='price') ------①
maint = pd.get_dummies(cars.maint, prefix='maint')

doors = pd.get_dummies(cars.doors, prefix='doors')
persons = pd.get_dummies(cars.persons, prefix='persons')

lug_capacity = pd.get_dummies(cars.lug_capacity, prefix='lug_capacity')
safety = pd.get_dummies(cars.safety, prefix='safety')

labels = pd.get_dummies(cars.output, prefix='condition')

X = pd.concat([price, maint, doors, persons, lug_capacity, safety], axis=1) ------②
y = labels.values ------ 레이블을 넘파이 배열로 변환

get_dummies는 가변수(dummy variable)로 만들어 주는 메서드입니다. 가변수로 만들어 준다는 의미는 문자를 숫자 (0, 1)로 바꾸어 주는 것으로, 0은 ‘없음’, 1은 ‘있음’을 의미합니다. 이때 get_dummies는 문자열 특성만 인코딩되며 숫자 특성은 바뀌지 않습니다.

② 여섯 개의 열을 병합하기 위해 concat() 메서드를 사용합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.