当我从事机器学习项目时,我正在寻找一行代码将我的标签转换为单热向量。我在 Reddit 上发现了 u/benanne 的这行漂亮的代码。
np.eye(n_labels)[target_vector]
例如,对于一个target_vector = np.array([1, 4, 2, 1, 0, 1, 3, 2])
,它返回 one-hot 编码值:
np.eye(5)[target_vector]
Out:
array([[ 0., 1., 0., 0., 0.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 1., 0., 0.],
...,
[ 0., 1., 0., 0., 0.],
[ 0., 0., 0., 1., 0.],
[ 0., 0., 1., 0., 0.]])
虽然它确实有效,但我不确定它是如何或为什么有效的。