Page 34 -
P. 34
● 성별: 남성, 여성
● 요일: 월, 화, 수, 목, 금, 토, 일
● 국가: 미국, 영국, 중국, 일본 등
신경망과 일부 머신 러닝 알고리즘은 숫자만 입력받을 수 있어 범주형 변수를 바로 사용할 수 없
다. 따라서 범주형 변수를 머신 러닝에 사용하려면 반드시 전처리를 거쳐야 한다.
범주형 변수를 숫자형 변수로 바꾸는 한 가지 방법으로 원핫 인코딩(one-hot encoding)을 사용할
수 있다. 판다스는 원핫 인코딩을 get_dummies() 함수로 구현해 제공한다. 예를 들어 N개 범주 값
을 담은 범주형 변수를 원핫 인코딩을 사용해 변환하면, 이진 특징 변수 N개를 얻을 수 있다. 다
음 그림 1-16의 예시를 살펴보자.
그림 1-16 원핫 인코딩 적용 예
범주형 특징 변수 이진 특징 변수
원핫 인코딩 적용
원핫 인코딩으로 변환한 각 이진 변수는 1 또는 0 값을 가진다. 이진 변수 값이 1이면 범주형 변수
값이 이 이진 변수에 해당하는 범주라는 의미다. 반대로 다른 범주라면 이진 변수 값은 0이 된다.
이러한 변환 과정을 직접 구현하려면 꽤 번거롭겠지만 판다스 함수로 쉽게 적용할 수 있다. 먼저
그림 1-16의 예시 데이터를 판다스 DataFrame으로 만들자.
df2 = pd.DataFrame({'Day': ['Monday','Tuesday','Wednesday',
'Thursday','Friday','Saturday',
'Sunday']})
이 DataFrame을 출력한 결과는 다음 그림 1-17과 같다.
그림 1-17 원핫 인코딩에 사용할 예시 데이터
46
신경망교과서_07.indd 46 2020-05-19 오전 9:04:33