UserWarning: 'verbose_eval' argument is deprecated and will be removed in a future release of LightGBM. Pass 'log_evaluation()' callback via 'callbacks' argument instead.什么意思
时间: 2023-12-22 18:02:24 浏览: 288
这个警告表示,LightGBM中的'verbose_eval'参数已经过时,并且在将来的版本中将被移除。取而代之的是,应该使用'callbacks'参数来控制输出的详细程度和评估指标。具体地,可以通过设置'log_evaluation()'回调函数来实现输出评估结果日志。示例代码如下:
```python
import lightgbm as lgb
# 准备数据......
train_data = lgb.Dataset(...)
valid_data = lgb.Dataset(...)
# 定义参数......
params = {
'objective': 'binary',
'metric': 'auc',
}
# 定义回调函数......
def log_evaluation(period=1, show_stdv=True):
def _callback(env):
if period > 0 and env.evaluation_result_list \
and (env.iteration + 1) % period == 0:
result = '\t'.join([
lgb.callback._format_eval_result(x, show_stdv)
for x in env.evaluation_result_list
])
print('[{}]\t{}'.format(env.iteration + 1, result))
_callback.order = 10
return _callback
# 训练模型......
model = lgb.train(params, train_data, valid_sets=[valid_data],
callbacks=[log_evaluation(period=10)])
```
在上面的代码中,'callbacks'参数被设置为'log_evaluation(period=10)',这意味着在每10个迭代结束时,LightGBM将输出评估结果日志。'log_evaluation()'回调函数的定义是在代码中给出的,它将评估结果格式化为一个字符串,并将其输出到控制台。需要注意的是,'_callback.order = 10'语句用于指定回调函数的顺序,这是必需的,因为LightGBM需要按照一定的顺序执行回调函数。
阅读全文