🐍

Python: 教師ラベルをOne-hot表現に変換する

2021/12/18に公開

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.]]
GitHubで編集を提案

Discussion