问题标签 [lightgbm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
709 浏览

xgboost - LightGBM和XGBoost的梯度和hessian计算的数值稳定性

我正在研究 LightGBM 和 XGBoost 分类的数值稳定性。我相信一个好的起点是梯度和 Hessian 的计算。这些需要计算逻辑函数,在我的理解中,它可能会在非常小的值下变得不稳定,因为这可能导致溢出。

以下是二元逻辑损失的 XGBoosts 实现。这里使用 epsilon 值来计算 Hessian,但仅用于 Hessian。为什么梯度或 sigmoid 函数不需要这个?为什么Hessian需要它

sigmoid 函数链接:https ://github.com/dmlc/xgboost/blob/24f527a1c095b24115dc5d54ad35cc25d3bc3032/src/common/math.h 目标函数链接:https ://github.com/dmlc/xgboost/blob/master/src /objective/regression_obj.cc#L37

以下是 LightGBMs 对二元逻辑损失的 GetGradients 实现。据我所知,没有使用类似于 XGBoosts 实现的 epsilon 值。这会导致数值不稳定吗?

链接到二进制逻辑损失类https://github.com/Microsoft/LightGBM/blob/1c92e75d0342989359c469b1ffabc2901038c0f2/src/objective/binary_objective.hpp

我希望有人能帮我解释这些问题,因为这让我很难过。如果可能发生数值不稳定性,实际示例会触发它吗?

非常感谢您提前。

0 投票
0 回答
1665 浏览

python - 从pickle在python中加载lightgbm模型时保持沉默

我有一个关于加载以前保存为泡菜的 lightgbm 模型的问题。

如果我在同一脚本中训练、保存和加载模型作为泡菜,则在加载泡菜时不会打印任何内容。使用此脚本,加载模型时不会打印任何内容。

如果之后我打开一个新脚本并像这样加载模型:

会有这样的打印:

[LightGBM] [Info] Finished loading 2 models

我的问题是:当模型加载而不是在保存它的脚本中时,我该怎么做才能不打印?

提前致谢

0 投票
0 回答
2502 浏览

python - 考虑 lightGBM 中的样本权重

我们用于建模的样本集是从一个大的整个数据集中采样的。通常当我们在记分卡模型中使用逻辑回归时,我们会将样本集整个数据集之间好坏样本比率的变化视为因子权重

如果我们考虑将模型应用于整个数据集,我认为当我们使用 lightGBM 时,该因素会影响树的分割。就像我们有一个叫做“年龄”的特征。如果我们不考虑权重,它应该在 32 上拆分,但权重告诉我们在整个数据集或总体中,更多的样本低于 25,拆分应该是 28。

我在 lightGBM 中找到了两种可能的方法:将is_unbalance设置为 False 并将scale_pos_weight设置为我们的weight,或者将is_unbalance设置为 True 并将我们的weight作为数组传递给 fit 函数中的参数“sample_weight”。

不知道哪一个是有效的,能达到我们在lightGBM中考虑样本权重的目标

0 投票
1 回答
2155 浏览

python - Lightgbm 与 Tweedie

我正在尝试使用 Tweedie 发行版运行 lightgbm。我相信这段代码应该足以解决问题:

当使用应用程序和度量作为泊松时,这运行良好,但是使用 Tweedie 我得到了这个回溯:

我假设我错过了一个参数,但我很确定我已经在文档中引用了 Tweedie 的所有内容。

请问你能帮忙吗?

干杯

0 投票
1 回答
1304 浏览

r - lightGBM 的交叉验证预测

lgb.cv有没有一种简单的方法可以从使用from构建的模型中恢复交叉验证预测lightGBM

我正在结合交叉验证进行网格搜索。最终,我想获得每个定义的保留折叠的预测,因此我还可以堆叠一些模型。

0 投票
1 回答
1741 浏览

r - lightgbm 线性回归模型构建

我是lightgbm包装新手,我正在尝试linear regression使用以下样本训练数据构建模型,其中中值房屋值作为 rstudio 中的响应变量

并且样本测试数据是

请与参数列表共享代码以构建模型lightgbm以预测输出。

编辑:将信息从评论移到问题

在出现与训练数据帧相关的错误后,它必须在 Dgcmatrix 中

0 投票
2 回答
1989 浏览

python - 如何在 LightGBM 中设置 max_bin 参数

以下代码会引发错误,提示“意外的关键字arguemnt 'max_bin'”。后来我发现'max_bin' 已贬值。那么如何使用'params'传递max_bin?谁能给我看一段示例代码?

/anaconda3/lib/python3.6/site-packages/lightgbm/basic.py:648: LGBMDeprecationWarning: max_bin 参数已弃用,将在 2.0.12 版本中删除。请使用 params 传递此参数。'请使用 params 传递此参数。', LGBMDeprecationWarning)

0 投票
0 回答
2149 浏览

lightgbm - LightGBMError: b'标签必须在 [0, 3) 中,但在标签中找到 -2147483648'

我正在使用 lightgbm 运行交叉验证,并在一组输入中看到以下错误,而我的所有其他输入都运行良好。

我所有的输入 x, y 都是 numpy 数组,以下是我运行交叉验证的代码:

0 投票
3 回答
5814 浏览

python - 带有 Sklearn RandomizedSearchCV 的 LightGBMError “检查失败:num_data > 0”

我正在尝试使用 Sklearn RandomizedSearchCV 调整 LightGBMRegressor 参数。我收到以下消息错误。

错误:

我不知道为什么以及具体参数导致了这个错误。以下任何 params_dist 都不适合 train_x.shape:(1630, 1565)?

请告诉我任何提示或解决方案。谢谢你。

LightGBM 版本:'2.0.12'

函数导致此错误:

太长了,无法放置完整的堆栈跟踪,这里是 lightgbm src。

0 投票
2 回答
780 浏览

machine-learning - max_bin 参数如何影响 LightGBM 的速度和过拟合?

这是来自 lightgbm doc在此处输入图像描述 但我还是不明白什么是 bin?以及它如何影响 lightgbm 的性能?