【问题标题】:How to label_binarize Multiclass in a specific class order如何按特定的类顺序 label_binarize Multiclass
【发布时间】:2015-07-25 00:15:44
【问题描述】:

我有一个真实标签列表:

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 且高效的方式来获得所需的输出

【问题讨论】:

    标签: python list scikit-learn binary-data


    【解决方案1】:

    只需将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]])
    

    【讨论】:

    • 我没有得到上述示例的输出。我只得到我的问题中提到的输出。不知何故,它正在混合订单。你运行的是什么 Python 版本?我的是 2.7.8
    猜你喜欢
    • 2012-02-01
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2018-01-07
    • 2018-09-04
    • 2012-07-12
    相关资源
    最近更新 更多