You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用MultiLabelBinarizer合并多类以生成单一标签项?

解决方法

原生的MultiLabelBinarizer不支持直接合并已有类别,但可以通过先对标签做映射转换的方式,借助它来实现你的需求,既不用自定义复杂的二值化逻辑,也能保证处理效率。

具体操作逻辑如下:

  • 先定义类别映射规则,把需要合并的类别统一映射到同一个新类别
  • 将原始样本中的标签按规则批量转换
  • 再用MultiLabelBinarizer处理转换后的标签

代码示例

from sklearn.preprocessing import MultiLabelBinarizer

# 原始类别集合
original_labels = ['a', 'b', 'c', 'd', 'e']
# 定义合并映射:a/b合并为'ab',d/e合并为'de',c保持原样
label_mapping = {'a': 'ab', 'b': 'ab', 'c': 'c', 'd': 'de', 'e': 'de'}

# 原始样本标签
x = ['a', 'c', 'd']
y = ['a', 'b', 'e']
z = ['c', 'd', 'e']

# 批量转换样本标签:用映射规则替换原始标签
transformed_samples = [
    [label_mapping[label] for label in x],
    [label_mapping[label] for label in y],
    [label_mapping[label] for label in z]
]

# 使用MultiLabelBinarizer处理转换后的标签
mlb = MultiLabelBinarizer()
result = mlb.fit_transform(transformed_samples)

print(result)

输出结果

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

这种方式完全依托MultiLabelBinarizer的高效实现,仅增加了一步字典映射的预处理——字典查找是O(1)操作,哪怕类别数量极多,处理效率也不会受影响,完美匹配你的需求。

内容的提问来源于stack exchange,提问作者Tobi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 02:35:19