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]

 

 

コード

pythonで教師ラベルをOne-hot表現に変換するコードは、下記になります。

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)

 

実行結果

# beforeをOne_hot表現に変換
[[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.]]

 

 

 

 

コメント

タイトルとURLをコピーしました