python - 如何在lightGBM中设置metric输出的频率?

标签 python data-mining lightgbm

文档中说我们可以设置参数metric_freq来设置频率。我也试过参数verbose,参数设置为

params = {
    'task': 'train',
    'boosting_type': 'gbdt',
    'objective': 'binary',
    'metric': { 'binary_logloss'},
    'metric_freq':10,
    'num_leaves': 511,
    'max_depth':8,
    'learning_rate': 0.1,
    'feature_fraction': 1,
    'bagging_fraction': 0.8,
    'bagging_freq': 1,
    'verbose':10
}

但是,我还是得到了如下结果,

[1] valid_0's binary_logloss: 0.607487
Train until valid scores didn't improve in 5 rounds.
[2] valid_0's binary_logloss: 0.537403
[3] valid_0's binary_logloss: 0.479081
[4] valid_0's binary_logloss: 0.429961
[5] valid_0's binary_logloss: 0.388182
[6] valid_0's binary_logloss: 0.35239
[7] valid_0's binary_logloss: 0.321529
[8] valid_0's binary_logloss: 0.294795
[9] valid_0's binary_logloss: 0.271543
[10]    valid_0's binary_logloss: 0.251267
[11]    valid_0's binary_logloss: 0.233531
[12]    valid_0's binary_logloss: 0.217997
[13]    valid_0's binary_logloss: 0.204344

这表明参数 metric_freq 根本不起作用。那么哪个参数是用来设置输出频率的呢?
在 R 中,我们可以使用 eval_freq,但是 python 包装器中没有 eval_freq 参数!

最佳答案

尝试将 verbose_eval=10 作为关键字参数(而不是在参数中)。

关于python - 如何在lightGBM中设置metric输出的频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44719651/

相关文章:

python - 调用CopyObject操作时NoSuchBucket

python - 如何根据前两个匹配列从多个大型文本文件的第三列中提取数据?

graph - 如何在jgrapht中获取最近邻居

machine-learning - 寻找聚类算法的准确性

python - 为 LightGBM 提供额外的自定义指标以实现提前停止

python - 为什么我的 scikit learn 的plot_learning_curve 在 google VM 上运行得不快?

python - 如何使用 pandas 使用列与列列表和值列表之间的匹配来填充数据框?

python - 如何使用Python获取Json的父元素

machine-learning - 为什么关联规则学习被认为是一种监督学习方法?

python - light gbm - python API 与 Scikit-learn API