问题标签 [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 回答
663 浏览

python - 使用 GPU 尝试 LightGBM 时出现错误:LightGBMError: No OpenCL device found

我尝试在 AWS 实例上使用 lightGBM 和 python。我可以使用标准 lightgbm 进行训练,但如果我将其与 GPU 加速一起使用。它显示以下错误

0 投票
1 回答
2002 浏览

python - LightGBM 错误 - 长度与数据不同

我正在使用 lightGBM 来查找特征重要性,但出现错误LightGBMError: b'len of label is not same with #data'。X.shape (73147, 12) y.shape (73147,)

代码:

请看下面的截图:

在此处输入图像描述

0 投票
1 回答
2351 浏览

python - light gbm - python API vs Scikit-learn API

我正在尝试应用 LightGBM 并阅读了 Python API文档

Training API 和 Scikit-learn API 之间有什么区别吗?我们可以同时使用这两种 API 来解决相同的问题吗?

0 投票
1 回答
1364 浏览

python - LightGBM 和 Catboost 都已安装,但在 Jupyter 中导入时会出现 ModuleNotFoundError

我已经使用命令提示符成功安装了 CatBoost 和 LightGbM 模块。它给了我消息 Successly installed catboost-0.2.5(我之前也尝试过另一个)。但是,当我尝试将它们都导入到 jupyter 笔记本中时,我遇到了相同的错误:

我得到:

我也遇到了与 CatBoost 相同的错误。

有任何想法吗?谢谢!

0 投票
2 回答
4789 浏览

python - 如何在多类分类中的轻型 gbm python 中编写自定义 F1 分数指标

有人可以帮我如何在 python 中为多类分类编写自定义 F1 分数???

编辑:我正在编辑问题以更好地了解我想要做什么

这是我针对 5 个类的多类问题的自定义 eval f1 分数指标的函数。

注意:我正在重塑的原因是验证真值的长度为 252705,而 preds 是长度为 1263525 的数组,是实际值的 5 倍。原因是 LGB 为每个预测输出每个类别的概率。

下面我将训练和验证数据转换为 LGB 可以接受的格式。

下面是我适合训练数据的 LGB 模型。如您所见,我已将evalerror自定义函数传递给我的模型,以及我希望在训练时查看 f1 分数feval的验证数据。dvalid我正在训练模型进行 10 次迭代。

由于模型正在接受 10 轮训练,验证集上每次迭代的 F1 分数显示在下方,这是不正确的,因为我得到了 0.18 左右。

但是一旦模型训练了 10 次迭代,我就会运行下面的代码来预测相同的验证集。

注意:我没有像在自定义函数中那样重新整形是因为lgb_model.predict()输出了一个 (252705, 5) 的 numpy 数组另外请注意,我正在传递valid_X而不是dvalid因为在预测时我们将不得不传递原始格式而不是像我们传入的稀疏格式lgb.train()

当我在相同的验证数据集上进行预测时,我得到的 F1 分数为 0.743250263548,这已经足够好了。所以我期望的是第 10 次迭代的验证 F1 分数,而训练应该与我在训练模型后预测的相同。

有人可以帮助我解决我做错的事情。谢谢

0 投票
1 回答
6840 浏览

python - AUC 高,但数据不平衡时预测不佳

我正在尝试在非常不平衡的数据集上使用 LightGBM 构建分类器。不平衡在比率97:3中,即:

我使用的参数和训练代码如下所示。

我运行 CV 以获得最佳模型和最佳回合。我在 CV 上得到了 0.994 AUC,在验证集中得到了相似的分数。

但是当我在测试集上进行预测时,我得到了非常糟糕的结果。我确信火车组是完美采样的。

需要调整哪些参数?问题的原因是什么。?我应该重新采样数据集以减少最高级别吗?

0 投票
0 回答
951 浏览

out-of-memory - 如何有效管理 lightgbm 的输入数据集以避免内存错误

我正在尝试在大型数据框上拟合 lightgbm 模型多类模型:

631,761 x 1786列 (2.2gb)。这运行良好。但是,有一列有 10000 个唯一的类(我目前在模型的帮助下使用pd.factorize)。但是我想转置它们并用作每个类的指标,如下所示:

这种转换导致内存错误。有没有任何有效的方法可以做到这一点,而不会遇到内存错误。

这是我的配置:

0 投票
1 回答
1694 浏览

python-3.x - 尝试安装支持 GPU 的 LightGBM

我逐步遵循官方指南并获得最后一个命令(我也从https://github.com/Microsoft/LightGBM/blob/master/docs/Installation-Guide.rst#linux构建 GPU 版本):

当我执行这个命令时,得到了这个:

我尝试安装 setuptools、numpy、scipy。这没有帮助

0 投票
1 回答
1856 浏览

machine-learning - LightGBM中多类分类中的树数

我正在使用 iris 数据集使用 LightGBM 执行多类分类。代码片段如下:

在 model.txt 中,我希望 number_of_trees 等于 num_boost_round。但我看到 60 棵树是 num_boost_round*num_class 这是错误的。

为什么会这样?

0 投票
2 回答
963 浏览

python - Lightgbm如何修复步数

我目前在 python 上使用 lightgbm 库。

问题是,训练在 100 次迭代后停止。我在文档上没有找到步骤参数,所以我想知道如何增加迭代次数?我不想使用 lgb.train() 函数。事实上,我还想使用 sklearn 中的网格搜索功能(然后获取模型),所以我需要使用 fit 功能。有谁知道如何解决我的问题?

编辑:使用 num_iterations 参数似乎可行,但我们需要最新版本的 lightgbm。我以前的版本因此不起作用!