问题标签 [gbm]

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 投票
2 回答
7830 浏览

r - R:从 h2o.randomForest() 和 h2o.gbm() 绘制树

寻找一种在 rstudio、H2O 的 Flow 或本地 html 页面中从 h2o 的 RF 和 GBM 模型中绘制树的有效方法,类似于下面链接中的图像。具体来说,您如何为对象(拟合模型)rf1 和 gbm2 绘制由下面的代码生成的树,也许是通过解析 h2o.download_pojo(rf1) 或 h2o.download_pojo(gbm1)?

http://i.stack.imgur.com/3OWx1.png

0 投票
1 回答
4185 浏览

r - GBM模型的“有效偏差”是nan,这是什么意思以及如何摆脱它?

我正在使用梯度提升进行分类。虽然结果正在改善,但我在有效偏差中得到了 NaN。

结果

在此处输入图像描述

如何调整参数以获得有效偏差。

0 投票
1 回答
297 浏览

r - 无法使用 gbm 重现测试预测

我正在使用gbm构建预测回归模型。我有训练和测试集(预定义的,不是随机选择的)。以下是代码的概述。

我有大约 600 行的训练数据和 150 行的测试数据。我知道他们很少,但仍然如此。

不知何故,当我用完全相同的参数一次又一次地运行 gbm 模型时,我无法在测试集上重现预测。但与此同时,我总是能够在训练集上重现预测。在建立模型和做出预测之前,我也在播种。有人可以帮我弄清楚发生了什么吗?请注意,训练和测试数据始终保持不变,我不会在每次运行时都更改它们。

0 投票
0 回答
588 浏览

machine-learning - 使用增强回归树克服完全分离

我正在尝试使用 BRT 分析来拟合和测试模型,但我一直遇到完全分离的错误。我尝试了多种方法来克服这个问题,但无济于事。我通过logistf使用了一种惩罚回归,对模型进行了贝叶斯先验,省略了我认为导致过度拟合的变量,使用log1p转换了我所有的倾斜预测变量,并根据Coadou,2013完全忽略了它(http:// www.epj-conferences.org/articles/epjconf/pdf/2013/16/epjconf_sos2012_02004.pdf)建议在 BRT 训练模型中过度拟合不会造成大问题。

在她的文章中,她指出,导致训练数据完美拟合的树对测试样本的最终提升输出贡献很小。然而,即使我忽略完全分离并尝试预测我的评估数据(我试图将我的模型拟合到 2000 点,并在剩余的 11,141 点上对其进行测试),我的绘图仍然是空白的(Elith 等人的图 2 . 2008)。

我读过的文章都没有专门讨论克服 BRT 中完全分离的解决方案,这让我认为可能有一个我不知道的替代解决方案来解决这个问题。

我有一个非常大的数据集(13,141 个点),其中包含一个二元响应变量和 16 个协变量。我还尝试仅使用 5 个协变量来拟合模型并遇到了同样的问题。任何帮助都将不胜感激。我附上了我的数据的头部给你一个想法。

请原谅嘈杂的变量名!我的响应变量“Hotspot_Resp”是二进制的;“Canopy_Cov”、“No_Canopy”、“Soil_Type”和“OPP_Class”是分类变量。其中许多变量是 log1p 或 log 转换的,但为简单起见,我在此处保留了原始列名。

无论我尝试什么,每次我尝试拟合以下模型时:

它运行交叉验证过程,但我得到:

请注意:根据 Elith 等人的第一个步骤之一。BRT 的 2008 年教程是检查响应变量的总和。我可以实现这一点的唯一方法是将 Hotspot_Resp 设置为数字,中间步骤将其设置为字符。当 Hotspot_Resp 设置为数字时,我能够成功执行模型拟合(尽管完全分离)。但是,当我设置因素时,我收到以下信息:

再次非常感谢您提供的任何帮助或见解!

0 投票
1 回答
2472 浏览

r - GBM 交叉验证

我正在尝试使用R'sgbm回归模型。我想计算交叉验证预测响应值和真实响应值之间的确定系数(R 平方)。但是, 的cv.fittedgbm.object仅提供 1- 的预测响应值train.fraction。所以为了得到我想要的东西,我需要找到哪些观察值对应于这些cv.fitted值。

知道如何获取这些信息吗?

0 投票
1 回答
147 浏览

c++ - 编辑GBM源代码,C++部分代码

我是 R 新手。我一直在玩 GBM 源代码来学习。

我正在尝试更改源代码中不同的现有条件和公式。

我可以使用 fix() 和 trace() 编辑 R 代码,但是 GBM 的 c++ 代码我无法编辑并将这些编辑过的代码替换现有代码并运行它们以查看现有条件更改的影响/公式。

是否可以更改 GBM 的 c++ 代码并使用编辑后的代码运行 GBM?

提前致谢

0 投票
0 回答
421 浏览

r - 为什么因子的表现优于虚拟变量?

我正在使用gbm.stepR 中的 dismo 包(用于 GBM)来构建增强回归树模型。然而,我最初将分类变量编码为因子 - 我被告知将因子编码为虚拟二进制变量(1 表示存在;0 表示不存在)将使算法更容易执行递归二进制拆分。

然而,今天我为包含因子的数据集(320 次运行)和另一个包含虚拟变量的数据集(另外 320 次运行)运行了一系列学习率、树复杂度和袋子分数的组合。

为了进行一般性细分,我有 4 个分类变量。

1) 第一个分类有 4 个级别 - 分为四个单独的 1/0 组合

2)第二个与(1)相同。

3) 第三个有 3 个级别 - 分为 3 个单独的 1/0 组合。

4) 最后一个分类变量有 2 个级别 - 所以 2 1/0 组合。

在比较所有运行后,在解释的偏差方面,使用因子编码的数据集每次(320 次)都优于二进制虚拟变量 1.5 - 3%。

我想知道为什么,当我期望虚拟变量更好地拟合模型时?是否dismo在幕后自动创建虚拟变量?

谢谢。

0 投票
0 回答
379 浏览

python - 使用 Sklearn Wrapper 的 XGBoost 收敛图

我正在为 xgboost 使用 sklearn 包装器。我想为每次迭代的训练和测试样本生成 AUC 图,如下图所示。

在 sklearn 中,您可以使用warm_start一次迭代一个,以便您可以轻松停止以评估性能。有没有办法使用 xgboost sklearn 包装器来做同样的事情?

收敛图

0 投票
1 回答
1236 浏览

r - 在 foreach 循环中运行 h2o 算法?

我天真地认为在 foreach 循环内并行多次调用 h2o.gbm 是直接的。但是遇到了一个奇怪的错误。

下面的代码

0 投票
0 回答
780 浏览

r - 不是 GBM 模型中的因子 R

抱歉这个愚蠢的问题。我正在运行以下代码:

预测器有一堆自变量,y 是目标。我收到以下错误:

但是,如果我在预测变量中测试“邻居”,这是一个因素:

我还在运行具有相同参数列表的 xgboost 和 ranger 模型,并且它适用于这两个模型。

有谁知道我应该如何着手解决这个问题?谢谢