Tensorflow - 레이블/원핫 인코딩 쉽게 바꾸기 (to_categorical)

반응형


텐서플로우 라이브러리 호출

from tensorflow.keras.utils import to_categorical

레이블 인코딩 -> 원핫 인코딩 변환

  • to_categorical(변수, num_classes=데이터갯수)
    • 변수 : 레이블인코딩된 데이터를 원핫 인코딩으로 변환
    • num_classes : 레이블인코딩 된 데이터의 카테고리 수
y_train[0]
>>> 5

# 레이블 인코딩 된 데이터 카테고리 수 확인, 분류 모델 총 10개
np.unique(y_train)
>>> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=uint8)

# 원핫인코딩으로 변환, num_classes 10개
y_train = to_categorical(y_train, num_classes=10)

y_train[0]
>>> array([0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], dtype=float32)

원핫 인코딩 -> 레이블 인코딩 변환

  • argmax(axis=1) : 가장 큰 값들의 인덱스로 재설정, 레이블 인코딩화
y_pred[0]
>>> array([[3.1550862e-03, 5.1424653e-05, 9.6644469e-02, ..., 3.9535360e-03,
        2.1480538e-03, 3.1271452e-04] 

y_pred = y_pred.argmax(axis=1)
y_pred[0]
>>> 3
반응형