首页 > 解决方案 > 如何使用索引对多标签表示进行编码?

问题描述

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

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

sklearn.preprocessing.MultiLabelbinarizer只给

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

任何人都知道如何使用NumpyPandassklearn内置功能来做到这一点?

标签: pandasnumpyscikit-learn

解决方案


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]])

推荐阅读