더북(TheBook)

Y_train = to_categorical(y_train, 10)

Y_train 데이터를 원-핫 인코딩합니다. 이때 사용하는 함수가 텐서플로의 케라스 내부의 유틸(utils) 도구 중 to_categorical입니다. 구조가 참 복잡하죠? 이 구조에 대해선 굳이 신경 쓸 필요는 없습니다.

to_categorical 함수는 수치형 데이터를 범주형 데이터로 만들어 주는 함수입니다. 함수를 사용하기 위해서는 변경 전 데이터(y_train)와 원-핫 인코딩할 숫자, 즉 몇 개로 구분하고자 하는지가 필요합니다. 인공지능이 예측하는 결과는 0~9까지의 숫자이므로 분류하고자 하는 값은 열 개입니다. 따라서 원-핫 인코딩을 위해 구분하려는 수를 10으로 설정합니다.

TIP

16.1절에서 살펴본 바와 같이, 원-핫 인코딩은 한 숫자만 1로 나타내는 것입니다. 예를 들어 7이라는 숫자를 10개의 순서 중 하나로 나타내면 (0, 0, 0, 0, 0, 0, 0, 1, 0, 0)과 같이 나타낼 수 있습니다. 7은 0부터 9까지 중 8번째 숫자이기 때문에 8번째(7)에만 1로 표시한 것입니다.

원-핫 인코딩 결과 Y_train 데이터가 그림 16-12와 같은 형태로 바뀌었습니다.

그림 16-12 | 원-핫 인코딩 후 Y_train 데이터의 모습

첫 번째 데이터는 7에서 [0, 0, 0, 0, 0, 0, 0, 1, 0, 0]으로 바뀌었습니다. 여덟 번째에만 1로 표시된 모습을 볼 수 있는데, 0, 1, 2, 3, 4, 5, 6, 7에서 7의 위치가 여덟 번째이기 때문입니다. 같은 방법으로 두 번째 데이터는 2에서 [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]으로 바뀌었습니다.

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