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

关于LightGBM predict函数输出值超出0-1范围的疑问

关于LightGBM predict函数输出值超出0-1范围的疑问

嗨,我来帮你搞懂这个问题——你得到的超出0-1范围的数值根本不是概率,而是LightGBM默认回归任务下的原始预测值,这都是因为训练模型时漏了关键的参数配置!

问题根源

LightGBM的train函数如果传入空的参数字典,会默认使用objective='regression'(回归任务),而不是你需要的二分类任务配置。回归任务的输出是不受限制的连续实数值,自然会出现小于0或者大于1的情况,完全没有经过概率转换。

而你做的是二分类任务(预测Survived是0或1),必须显式指定二分类的目标函数,这样模型才会用sigmoid函数把输出压缩到0-1的概率区间里。

修复方法

只需要在训练模型时,给参数字典加上二分类相关的配置就行:

# 新增二分类任务的参数配置
params = {
    'objective': 'binary',  # 指定二分类任务
    'metric': 'binary_logloss',  # 可选,用来监控训练时的损失
    'random_state': 42
}

# 用带参数的配置训练模型
initial_model = lgb.train(params, lgb.Dataset(X_train, label=y_train), 100)

修改后你再运行代码,y_pred_initial就会变成0到1之间的概率值,用y_pred_initial > 0.5转换为类别也完全合理,计算出来的F1分数和混淆矩阵也会更符合二分类任务的预期。

额外小提醒

你可以对比一下修改前后的y_pred_initial:修改前是回归任务的无界输出,修改后就是标准的二分类概率值,不会再出现负数或者大于1的数啦。

备注:内容来源于stack exchange,提问作者Legna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 13:55:29