🐍
Python: 教師ラベルをOne-hot表現に変換する
One-hot表現とは
1ビットだけ1で、他のビットは0で表現されるビット列のこと。
Kerasで教師あり学習を行う場合、教師ラベルはこの形式で表現されている必要がある。
具体例
豚、牛、鶏、猪の4つのデータを使用する場合、これらをOne-hot表現に変換すると次のようになります。
豚 = [1, 0, 0, 0]
牛 = [0, 1, 0, 0]
鶏 = [0, 0, 1, 0]
猪 = [0, 0, 0, 1]
ソースコード
import numpy as np
from keras.utils import np_utils
# 変換前教師データ
before = np.array([0, 0, 0, 1, 1, 1, 2, 2, 2])
# 変換後教師データ
after = np_utils.to_categorical(before)
print(after)
実行結果
[[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 0. 1.]
[0. 0. 1.]
[0. 0. 1.]]
Discussion