post Image
整数値のベクトルをone hot表現に変換

クラス分類問題などで、整数値のベクトルをone hot表現に変換する場合、

pythonではnumpyを使って以下のように変換できる。

python

import numpy as np

target_vector = [0,2,1,3,4] # クラス分類を整数値のベクトルで表現したもの
n_labels = len(np.unique(target_vector)) # 分類クラスの数 = 5
np.eye(n_labels)[target_vector] # one hot表現に変換

実行して得られるone-hot表現

array([[ 1.,  0.,  0.,  0.,  0.],   # 0

[ 0., 0., 1., 0., 0.], # 2
[ 0., 1., 0., 0., 0.], # 1
[ 0., 0., 0., 1., 0.], # 3
[ 0., 0., 0., 0., 1.]]) # 4


参考

https://www.reddit.com/r/MachineLearning/comments/31fk7i/converting_target_indices_to_onehotvector/


『 Python 』Article List