我正在使用MultiLabelBinarizer处理多标签分类问题,以对标签进行编码。我根据https://scikit-learn.org/stable/modules/multiclass.html中给出的示例尝试了编码和解码过程。问题在于,在逆变换中,缺少重复的类。为了清楚起见,请考虑一个包含五个类别和四个样本的多标签分类问题的示例。
label = np.array([[2, 3, 4,2,0], [3,1,2,4,2], [0, 1, 3,0,1], [0, 1, 2, 3, 4]])
mlb = MultiLabelBinarizer()
y = mlb.fit_transform(label)`
label_ = mlb.inverse_transform(y)
print(label_)
> [(0, 2, 3, 4), (1, 2, 3, 4), (0, 1, 3), (0, 1, 2, 3, 4)]
请注意,类别编号2
在第一个和第二个样本中出现了两次,而类别编号1
在第三个样本中出现了两次。但是在解码版本中,它们只出现一次。我猜模型会预测一次特定的类标签,而忽略是否重复。但是,如果在上面的示例中我们想要label
和label_
之间的一对一映射怎么办?有什么方法可以使预测标签的形状等于真实标签?对此表示任何帮助,我们深表感谢。