【问题标题】:How to encode multi-label representation using index?如何使用索引对多标签表示进行编码?
【发布时间】:2018-11-11 10:05:39
【问题描述】:

我想将[[1, 2], [4]] 编码为

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

sklearn.preprocessing.MultiLabelbinarizer 只提供

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

有人知道如何使用NumpyPandassklearn 内置函数吗?

【问题讨论】:

    标签: pandas numpy scikit-learn


    【解决方案1】:

    MultilabelBinarizer 只会知道您发送的内容。当它只看到 3 个不同的类时,它只会分配 3 列。

    您需要设置 classes 参数来设置您在数据集中期望的类的总数(按您希望在列中的顺序):

    from sklearn.preprocessing import MultiLabelBinarizer
    mlb = MultiLabelBinarizer(classes=[0,1,2,3,4])
    mlb.fit_transform([[1, 2], [4]])
    
    #Output
    array([[0, 1, 1, 0, 0],
           [0, 0, 0, 0, 1]])
    

    【讨论】:

    • LabelBinarizer 可以这样做吗?
    • @danche No. LabelBinarizer 仅适用于单个列表。不是列表列表。
    猜你喜欢
    • 1970-01-01
    • 2020-06-16
    • 2021-12-22
    • 2019-12-25
    • 2020-10-30
    • 2017-05-25
    • 2018-01-09
    • 1970-01-01
    • 2012-02-25
    相关资源
    最近更新 更多