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

LightGBM中lgb.train()报错:无法识别early_stopping_rounds参数

解决LightGBM train() 不识别 early_stopping_rounds 参数的问题

问题原因

你遇到的错误是因为较新版本的LightGBM(v3.0及以上)已移除lgb.train()函数中的early_stopping_rounds直接参数,早停功能需要通过回调函数实现。

修复后的代码

将early_stopping_rounds替换为lightgbm.early_stopping()回调,同时修正参数中的小问题(is_unbalance应使用布尔值而非字符串):

import lightgbm as lgb

parameters = {
    'application': 'binary',
    'objective': 'binary',
    'metric': 'auc',
    'is_unbalance': True,  # 改为布尔值,原字符串'true'可能引发警告
    'boosting': 'gbdt',
    'num_leaves': 50,
    'feature_fraction': 0.8,
    'bagging_fraction': 0.8,
    'bagging_freq': 20,
    'learning_rate': 0.003,
    'max_depth': 5,
    'verbose': 0
}

# 定义早停回调
early_stopping_callback = lgb.early_stopping(stopping_rounds=100)

model = lgb.train(
    parameters,
    train_data_lgb,
    valid_sets=test_data_lgb,
    num_boost_round=3000,
    callbacks=[early_stopping_callback]  # 传入回调列表
)

额外说明

  • 若你使用的是v3.0以下的旧版本LightGBM,可尝试升级到最新版本,或检查参数拼写是否有误。但更推荐使用回调方式,这是当前官方标准用法。
  • 可搭配lgb.log_evaluation()回调查看训练过程中的指标变化:
    log_callback = lgb.log_evaluation(period=10)
    model = lgb.train(
        parameters,
        train_data_lgb,
        valid_sets=test_data_lgb,
        num_boost_round=3000,
        callbacks=[early_stopping_callback, log_callback]
    )
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:13:31