如何以特定的 class 顺序 label_binarize 多 class
How to label_binarize Multiclass in a specific class order
我有一个真实标签列表:
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]]
寻找一种 Pythonic 的高效方法来获得所需的输出
只需将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]])
我有一个真实标签列表:
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]]
寻找一种 Pythonic 的高效方法来获得所需的输出
只需将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]])