我想将[[1, 2], [4]]
编码为
[[0, 1, 1, 0, 0],
[0, 0, 0, 0, 1]]
而sklearn.preprocessing.MultiLabelbinarizer
仅提供
[[1, 1, 0],
[0, 0, 1]]
任何人都知道如何使用Numpy
或Pandas
或sklearn
内置函数执行此操作?
答案 0 :(得分:2)
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]])