问题标签 [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.
python - 使用 GPU 尝试 LightGBM 时出现错误:LightGBMError: No OpenCL device found
我尝试在 AWS 实例上使用 lightGBM 和 python。我可以使用标准 lightgbm 进行训练,但如果我将其与 GPU 加速一起使用。它显示以下错误
python - light gbm - python API vs Scikit-learn API
我正在尝试应用 LightGBM 并阅读了 Python API文档。
Training API 和 Scikit-learn API 之间有什么区别吗?我们可以同时使用这两种 API 来解决相同的问题吗?
python - LightGBM 和 Catboost 都已安装,但在 Jupyter 中导入时会出现 ModuleNotFoundError
我已经使用命令提示符成功安装了 CatBoost 和 LightGbM 模块。它给了我消息 Successly installed catboost-0.2.5(我之前也尝试过另一个)。但是,当我尝试将它们都导入到 jupyter 笔记本中时,我遇到了相同的错误:
我得到:
我也遇到了与 CatBoost 相同的错误。
有任何想法吗?谢谢!
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 分数,而训练应该与我在训练模型后预测的相同。
有人可以帮助我解决我做错的事情。谢谢
python - AUC 高,但数据不平衡时预测不佳
我正在尝试在非常不平衡的数据集上使用 LightGBM 构建分类器。不平衡在比率97:3
中,即:
我使用的参数和训练代码如下所示。
我运行 CV 以获得最佳模型和最佳回合。我在 CV 上得到了 0.994 AUC,在验证集中得到了相似的分数。
但是当我在测试集上进行预测时,我得到了非常糟糕的结果。我确信火车组是完美采样的。
需要调整哪些参数?问题的原因是什么。?我应该重新采样数据集以减少最高级别吗?
out-of-memory - 如何有效管理 lightgbm 的输入数据集以避免内存错误
我正在尝试在大型数据框上拟合 lightgbm 模型多类模型:
631,761 x 1786
列 (2.2gb)。这运行良好。但是,有一列有 10000 个唯一的类(我目前在模型的帮助下使用pd.factorize
)。但是我想转置它们并用作每个类的指标,如下所示:
这种转换导致内存错误。有没有任何有效的方法可以做到这一点,而不会遇到内存错误。
这是我的配置:
python-3.x - 尝试安装支持 GPU 的 LightGBM
我逐步遵循官方指南并获得最后一个命令(我也从https://github.com/Microsoft/LightGBM/blob/master/docs/Installation-Guide.rst#linux构建 GPU 版本):
当我执行这个命令时,得到了这个:
我尝试安装 setuptools、numpy、scipy。这没有帮助
machine-learning - LightGBM中多类分类中的树数
我正在使用 iris 数据集使用 LightGBM 执行多类分类。代码片段如下:
在 model.txt 中,我希望 number_of_trees 等于 num_boost_round。但我看到 60 棵树是 num_boost_round*num_class 这是错误的。
为什么会这样?
python - Lightgbm如何修复步数
我目前在 python 上使用 lightgbm 库。
问题是,训练在 100 次迭代后停止。我在文档上没有找到步骤参数,所以我想知道如何增加迭代次数?我不想使用 lgb.train() 函数。事实上,我还想使用 sklearn 中的网格搜索功能(然后获取模型),所以我需要使用 fit 功能。有谁知道如何解决我的问题?
编辑:使用 num_iterations 参数似乎可行,但我们需要最新版本的 lightgbm。我以前的版本因此不起作用!