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

r - 如何在 gbm 包和 Kappa 统计中定义类不平衡数据集 (gbm) 的权重

我想找到一种在 caret 包中定义 gbm 权重的方法。“caret”包的“train”函数中有一个参数“weights”,但描述说“这个参数只会影响允许案例权重的模型”。据我了解,“gbm”确实支持定义权重,但我不知道定义权重的格式。它只是 c(1,10) - 其中 1 代表多数类,10 代表少数类吗?

第二个问题是关于 Kappa 统计量的。我读到 Kappa 是类不平衡数据集的更好性能指标,但不明白如何。对于类不平衡数据集,为什么 Kappa 是比 ROC 更好的性能指标,我将不胜感激。

谢谢。

0 投票
0 回答
777 浏览

r - 使用带有自定义权重的 gbm 时插入符号中的训练函数出错

我正在尝试使用 caret 包(RStudio)中的训练函数使用自定义权重参数为 gbm 执行参数调整并收到错误。错误是

原始数据集由 1649 个观察值组成,并使用 60/40 拆分为训练集和测试集。调整参数是使用 trainControl 和一个网格来定义的,用于尝试不同的参数值。

对于是/否类,列权重包含 1 或 10,并且是数据框中值的数值向量。主函数调用如下:

df$weights 是每个观察值的权重向量。由于类别不平衡,使用了度量“ROC”。在运行模型之前,该类已转换为包含 yes、no 值的因子。此外,如果我没有提到 weights 参数,那么该函数可以正常工作。

如果有人能说明如何克服这个错误,或者是否有人遇到过同样的问题以及他们是如何纠正的,我将不胜感激。

谢谢。

0 投票
1 回答
172 浏览

r - 在 gbm 的 LamdbaMART 实现中的验证集上获得 0 偏差

我正在尝试训练 LambdaMART 模型来执行成对排序的对象列表。我的训练数据集包含 50,000 个 112 维的特征向量。每个特征都由一个非负整数编码。

目标值是一个正整数(不连续)。给定两个新实例 X 和 Y,我希望我的模型能够预测 X 的目标值是否大于 Y。

由于这不是信息检索应用程序,因此查询的概念是无关紧要的。所有 50,000 个实例都属于同一个“查询”。

似乎当我运行我的模型时,即使设置为使用 70%/30% 的训练验证拆分,我的验证集偏差为 0,如果我尝试执行 OOB,gbm.perf 函数会抛出异常寻找最佳树数的方法。

总的来说,我很困惑这个包对所有这些无用的命名参数做了什么。我想知道的只是指定一个测试验证集,然后在树大小范围内最小化验证错误。不应该太多,但是这个包让我很难知道我需要设置哪些旋钮......以至于我要自己实现它,这样我就有了一些透明度并知道它在做什么。

很抱歉咆哮,但我可以使用一些帮助来让这个 pacakge 返回有意义的验证结果。

0 投票
2 回答
911 浏览

r - 如何使用 gbm 提取逻辑回归中的系数?

我正在将 gbm 包用于广义增强回归模型,并希望能够提取为存储在数据库中而生成的系数。

我已经在使用 R 自动生成可以导出到数据库并存储的公式。例如,我一直在使用 Harrell 博士的 lrm 包来执行逻辑回归,例如:

用gbm可以做到这一点吗?我知道 gbm 给出了许多按权重线性组合的树,但是有没有可能打印每棵树?或者在interaction.depth=1 的情况下是否至少可以这样做(例如,不允许交互)?

0 投票
1 回答
981 浏览

r - 获得提升多项式模型的准确性

我试图找到增强模型的准确性。我的代码是这样的:

当我尝试这个时,我收到以下错误:

我不确定要纠正什么或我做错了什么。有什么建议么?

0 投票
1 回答
861 浏览

r - 使用 caret 的 train 函数生成训练集和验证集图

我在 R 中使用 caret 的 train 函数来生成使用 GBM 的模型。我使用了 5 次重复的重复交叉验证,这意味着将有 50 个样本。我想问是否有一种方法可以以不同的方式绘制结果,以便该图在 x 轴上显示提升迭代,在 y 轴上显示 auc,并且在其内部显示从最佳参数选择获得的结果,但是用于训练折叠和测试折叠的单独行。这可以在您使用 gbm 包中的“gbm”函数并使用“gbm.perf”以及采样技术来绘制偏差的训练和验证曲线时产生。

是否有可能以某种方式对插入符号的火车功能做同样的事情?

谢谢。

0 投票
2 回答
144 浏览

r - 在r中的循环中将模型名称分配给gbm.step

我正在尝试在具有多个学习率的循环中运行 gbm.step。我想为所有 i 获取名为 gbmModel.i 的模型。

谁能建议如何去做

以下是代码:

0 投票
0 回答
548 浏览

r - 循环运行 gbm 并计算 r 中每个模型的预测值

我正在尝试以不同的学习率在 R 中循环制作 gbm 模型。我想为每个模型计算一些统计数据并将它们与原始数据集结合起来。

但是我有一个错误,因为每次计算统计数据时,它都以与前一个相同的名称保存,因此存在错误。

我在循环结束时收到以下错误:

火车数据基本上是带有日期、开盘价、收盘价等的股票价格数据。

以下是代码:

0 投票
1 回答
283 浏览

r - R中的doRedis / foreach GBM并行处理错误

我正在使用 caret 包运行 gbm 模型,并尝试使用 doredis 包的并行处理使其工作。我可以让后端工作人员全部启动并运行,但是当他们重新组合到最终模型中时遇到问题。我收到此错误:

这是我第一次尝试运行 foreach 循环(更不用说像 gbm 这样的复杂问题了)并且在尝试理解和实现它时遇到了问题。我已经进行了许多 Google 搜索,但在使用 gbm 实现 foreach 时一无所获,对于理解 foreach 的任何帮助将不胜感激。这是我的代码:

更新 根据有关使用某种数据集进行复制的建议,我将 mydata 切换为 Iris 数据集data <- iris并将 X 和 Y 更改为x <- data[, -5] y <- data[, 5]并发生相同的错误。

0 投票
0 回答
280 浏览

r - 错误消息“输入必须是 grobs!” (当组合不同的 gbm 图时)

我试图结合gbm.plot.fit不同plot.gbmgbm模型。这是我的示例代码:

错误信息是:

安排Grob(...,as.table = as.table,clip = clip,main = main,:输入必须是grobs!

有人可以告诉我我的代码可能出了什么问题吗?