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

如何为LightGBM迭代添加进度条?(LGBMRegressor场景)

为LightGBM迭代添加tqdm风格进度条

当然可以!针对你遇到的冗长迭代输出问题,有两种简单的方法给LGBMRegressor的拟合过程加上tqdm进度条,既可以选择显示评估指标,也可以只保留干净的进度条。

方法一:使用LightGBM官方自带的TqdmCallback(推荐)

如果你的LightGBM版本 >= 3.0.0(现在大部分环境都是这个版本以上),可以直接用官方提供的TqdmCallback,集成度很高:

首先确保安装了tqdm:

pip install tqdm

然后修改你的拟合代码:

from lightgbm import LGBMRegressor
from lightgbm.callback import TqdmCallback

gbm = LGBMRegressor(**hyper_params)
gbm.fit(
    X_train, y_train,
    eval_set=[(X_test, y_test)],
    eval_metric='mae',
    early_stopping_rounds=1000,
    verbose=-1,  # 关闭默认的冗长迭代输出
    callbacks=[TqdmCallback(verbose=1)]  # 启用tqdm进度条
)
  • 如果你只想显示进度条,不想看到评估指标,把TqdmCallback(verbose=1)改成TqdmCallback(verbose=0)即可。
  • verbose=-1是关键,它会关掉LightGBM默认的每轮指标打印,避免和进度条的输出混乱。

方法二:自定义tqdm回调(兼容旧版本LightGBM)

如果你的LightGBM版本比较旧,不支持官方的TqdmCallback,可以自己写一个简单的回调函数,完全可控:

from lightgbm import LGBMRegressor
from tqdm import tqdm

class TqdmLGBMProgressBar:
    def __init__(self, total_rounds):
        self.pbar = None
        self.total = total_rounds

    def __call__(self, env):
        # 初始化进度条
        if self.pbar is None:
            self.pbar = tqdm(total=self.total, desc="LightGBM迭代")
        
        # 更新进度条
        self.pbar.update(1)
        
        # 可选:显示评估指标(不想显示就注释掉这部分)
        if env.evaluation_result_list:
            # 格式化指标,保留4位小数
            metrics = {f"{m[0]}_{m[1]}": round(m[2], 4) for m in env.evaluation_result_list}
            self.pbar.set_postfix(metrics)
        
        # 早停时关闭进度条
        if env.early_stopping:
            self.pbar.close()

# 使用自定义回调
gbm = LGBMRegressor(**hyper_params)
# 获取总迭代次数(从你的hyper_params或默认值取)
total_iterations = hyper_params.get('n_estimators', 10000)
gbm.fit(
    X_train, y_train,
    eval_set=[(X_test, y_test)],
    eval_metric='mae',
    early_stopping_rounds=1000,
    verbose=-1,
    callbacks=[TqdmLGBMProgressBar(total_iterations)]
)

这个自定义回调可以灵活调整:比如你想修改进度条的描述、指标的显示格式,或者完全去掉指标显示,只需要修改对应的代码块就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:52:01