2024-09-29 21:35:29 发布
网友
当我在我的机器学习项目中工作时,我正在寻找一行代码来将我的标签变成一个热点向量。我在Reddit上看到了u/benanne的这段漂亮的代码。在
np.eye(n_labels)[target_vector]
例如,对于target_vector = np.array([1, 4, 2, 1, 0, 1, 3, 2]),它返回一个热编码值:
target_vector = np.array([1, 4, 2, 1, 0, 1, 3, 2])
虽然它确实有效,但我不知道它是如何工作的,为什么会这样。在
ndarray[[0]]将选择ndarray中的第一行
ndarray[[0]]
t = np.arange(9).reshape(3,3) print t print t[[1]]
输出是
很简单。np.eye(n_labels)创建一个n_labels大小的标识矩阵,然后使用target_vector从该矩阵中选择与当前目标值相对应的行。由于单位矩阵中的每一行都只包含一个1元素和其余的0,所以每一行都是有效的“一个热编码”。在
np.eye(n_labels)
n_labels
target_vector
1
0
ndarray[[0]]
将选择ndarray中的第一行输出是
^{pr2}$很简单。
np.eye(n_labels)
创建一个n_labels
大小的标识矩阵,然后使用target_vector
从该矩阵中选择与当前目标值相对应的行。由于单位矩阵中的每一行都只包含一个1
元素和其余的0
,所以每一行都是有效的“一个热编码”。在相关问题 更多 >
编程相关推荐