如何按特定的类顺序对Multiclass进行label_binalize



我有一个基础真值标签列表:

yTrue = ['class2','classC','class3','class3','classA','classB','class2']

和一个可能的类列表(不同的,按自定义顺序):

orderedClasses = ['classA','class2','classB','class3','classC']

我想在One-Vs-The-Rest中为所有可能的类编写列表。

所需输出:

[[0,1,0,0,0],[0,0,0,0,1],[0,0,0,1,0],[0,0,0,1,0],[1,0,0,0,0],[0,0,1,0,0],[0,1,0,0,0]]

我尝试使用sklearn.preprocessing.label_binarize (doc),但问题是它不维护我的自定义顺序的类:

[[0,0,1,0,0],[0,0,0,0,1],[1,0,0,0,0],[1,0,0,0,0],[0,0,0,1,0],[0,1,0,0,0],[0,0,1,0,0]]

寻找一个python的和有效的方法来获得所需的输出

直接传递orderedClasses作为classes参数

In [15]: label_binarize(yTrue, orderedClasses)
Out[15]:
array([[0, 1, 0, 0, 0],
       [0, 0, 0, 0, 1],
       [0, 0, 0, 1, 0],
       [0, 0, 0, 1, 0],
       [1, 0, 0, 0, 0],
       [0, 0, 1, 0, 0],
       [0, 1, 0, 0, 0]])

相关内容

  • 没有找到相关文章

最新更新