如何将多类分类后得到的结果映射到1和0

how to map the results obtained after multiclass classification to 1 and 0

我正在研究图像 classcifar 数据的化 set.I 获得预测标签作为从 0-1 映射到 10 个不同 classes 的输出有什么方法可以找到class 预测的标签属于?

//sample output obtained
array([3.3655483e-04, 9.4402254e-01, 1.1646092e-03, 2.8560971e-04,
       1.4086446e-04, 7.1564602e-05, 2.4985364e-03, 6.5030693e-04,
       3.4783698e-05, 5.0794542e-02], dtype=float32)

一种方法是找到最大值并将该索引设为 1,其余为 0。

 //for above case it should look like this
 array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0])

谁能告诉我该怎么做,或者如果您有更好的方法,请提出建议。谢谢

就像

一样简单
>>> data = np.array([3.3655483e-04, 9.4402254e-01, 1.1646092e-03, 2.8560971e-04,
...        1.4086446e-04, 7.1564602e-05, 2.4985364e-03, 6.5030693e-04,
...        3.4783698e-05, 5.0794542e-02], dtype=np.float32)
>>> 
>>> (data == data.max()).view(np.int8)
array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int8)

解释:data.max()求最大值。我们将其与每个单独的元素进行比较以获得真值向量。然后我们利用 True 映射到 1False 映射到 0.

的事实将其转换为整数

请注意,如果最大值不唯一,这将 return 多个。