【发布时间】:2017-12-17 12:59:18
【问题描述】:
当我从事机器学习项目时,我一直在寻找一行代码来将我的标签变成单热向量。我在 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.]])
虽然它确实有效,但我不确定它如何或为什么有效。
【问题讨论】:
-
我从未见过如此优雅的生成 OHV 的方法。
-
这是top voted SO question. 的第二个答案。可能应该是公认的答案,因为它可以很好地处理 n-d 1HA
标签: python numpy matrix vector