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

TensorFlow/Keras随机森林:二分类分类变量输出为何特殊?

解答

1. 特殊处理的原因

TensorFlow Decision Forests(TFDF)会根据标签的类型和类别数量自动推断任务类型:

  • 当检测到字符串型二分类标签时,会默认识别为二元分类任务,此时模型仅输出正类的概率(单个数值),这和传统机器学习框架(如Scikit-learn)的行为对齐,简化二元分类场景的输出。
  • 当标签是数值型二分类或类别数≥3时,会识别为多分类任务,输出所有类别的概率分布向量。

2. 统一输出格式的方法

方法一:强制指定多分类任务类型

初始化模型时,通过task参数明确指定为多分类任务,强制模型输出所有类别的概率向量:

rf = tfdf.keras.RandomForestModel(task=tfdf.keras.Task.CLASSIFICATION)

修改后,分类型二分类的输出会变为二维概率向量,和多分类格式一致。

方法二:将字符串标签转为数值型

构建训练数据时,把字符串标签映射为整数,让TFDF将其识别为多分类任务:

# 修改训练数据构建部分
train_pd = pd.DataFrame([{"key":v, "value":values.index(v)} for _ in range(multi) for v in values])

这种方式下,即使是二分类的字符串标签,转换为数值后模型也会输出概率向量。

验证效果

修改后分类型二分类的输出示例:

[[0.99999917 0.        ]
 [0.         0.99999917]]

内容的提问来源于stack exchange,提问作者Piotr Śniady

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:05:04