问题标签 [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.
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 值。这会导致数值不稳定吗?
我希望有人能帮我解释这些问题,因为这让我很难过。如果可能发生数值不稳定性,实际示例会触发它吗?
非常感谢您提前。
python - 从pickle在python中加载lightgbm模型时保持沉默
我有一个关于加载以前保存为泡菜的 lightgbm 模型的问题。
如果我在同一脚本中训练、保存和加载模型作为泡菜,则在加载泡菜时不会打印任何内容。使用此脚本,加载模型时不会打印任何内容。
如果之后我打开一个新脚本并像这样加载模型:
会有这样的打印:
[LightGBM] [Info] Finished loading 2 models
我的问题是:当模型加载而不是在保存它的脚本中时,我该怎么做才能不打印?
提前致谢
本
python - 考虑 lightGBM 中的样本权重
我们用于建模的样本集是从一个大的整个数据集中采样的。通常当我们在记分卡模型中使用逻辑回归时,我们会将样本集与整个数据集之间好坏样本比率的变化视为因子或权重。
如果我们考虑将模型应用于整个数据集,我认为当我们使用 lightGBM 时,该因素会影响树的分割。就像我们有一个叫做“年龄”的特征。如果我们不考虑权重,它应该在 32 上拆分,但权重告诉我们在整个数据集或总体中,更多的样本低于 25,拆分应该是 28。
我在 lightGBM 中找到了两种可能的方法:将is_unbalance设置为 False 并将scale_pos_weight设置为我们的weight,或者将is_unbalance设置为 True 并将我们的weight作为数组传递给 fit 函数中的参数“sample_weight”。
不知道哪一个是有效的,能达到我们在lightGBM中考虑样本权重的目标
python - Lightgbm 与 Tweedie
我正在尝试使用 Tweedie 发行版运行 lightgbm。我相信这段代码应该足以解决问题:
当使用应用程序和度量作为泊松时,这运行良好,但是使用 Tweedie 我得到了这个回溯:
我假设我错过了一个参数,但我很确定我已经在文档中引用了 Tweedie 的所有内容。
请问你能帮忙吗?
干杯
r - lightGBM 的交叉验证预测
lgb.cv
有没有一种简单的方法可以从使用from构建的模型中恢复交叉验证预测lightGBM
?
我正在结合交叉验证进行网格搜索。最终,我想获得每个定义的保留折叠的预测,因此我还可以堆叠一些模型。
r - lightgbm 线性回归模型构建
我是lightgbm
包装新手,我正在尝试linear regression
使用以下样本训练数据构建模型,其中中值房屋值作为 rstudio 中的响应变量
并且样本测试数据是
请与参数列表共享代码以构建模型lightgbm
以预测输出。
编辑:将信息从评论移到问题
在出现与训练数据帧相关的错误后,它必须在 Dgcmatrix 中
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)
lightgbm - LightGBMError: b'标签必须在 [0, 3) 中,但在标签中找到 -2147483648'
我正在使用 lightgbm 运行交叉验证,并在一组输入中看到以下错误,而我的所有其他输入都运行良好。
我所有的输入 x, y 都是 numpy 数组,以下是我运行交叉验证的代码:
python - 带有 Sklearn RandomizedSearchCV 的 LightGBMError “检查失败:num_data > 0”
我正在尝试使用 Sklearn RandomizedSearchCV 调整 LightGBMRegressor 参数。我收到以下消息错误。
错误:
我不知道为什么以及具体参数导致了这个错误。以下任何 params_dist 都不适合 train_x.shape:(1630, 1565)?
请告诉我任何提示或解决方案。谢谢你。
LightGBM 版本:'2.0.12'
函数导致此错误:
太长了,无法放置完整的堆栈跟踪,这里是 lightgbm src。