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

如何让sklearn的MultiLabelBinarizer输出指定维度的二值化结果

关于MultiLabelBinarizer指定输出维度的解决方案

scikit-learn原生支持该需求,无需引入第三方库或自行编写编码逻辑。

MultiLabelBinarizer提供了classes初始化参数,你可以手动指定需要覆盖的所有标签值,输出数组的维度会和传入的classes长度完全一致,未出现在输入数据中的标签对应的维度默认取值为0,完全符合你的预期。

示例代码

from sklearn.preprocessing import MultiLabelBinarizer

y = [[2, 3, 4], [2], [0, 1, 3], [0, 1, 2, 3, 4], [0, 1, 2]]
# 手动指定覆盖0-5共6个标签,输出维度即为6
mlb = MultiLabelBinarizer(classes=[0,1,2,3,4,5])
output = mlb.fit_transform(y)
print(output)

输出结果

array([[0, 0, 1, 1, 1, 0],
       [0, 0, 1, 0, 0, 0],
       [1, 1, 0, 1, 0, 0],
       [1, 1, 1, 1, 1, 0],
       [1, 1, 1, 0, 0, 0]])

补充说明

  • 如果需要的维度对应的标签是连续整数,可直接用classes=list(range(目标维度))快速生成参数值,无需手动逐个填写
  • 输出数组的维度顺序和classes的排列顺序完全对应,你也可以通过调整classes的顺序自定义输出维度的排列规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 11:24:03