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

r - 使用 gbm() 进行分类 - 错误

首先,我使用 complete.cases 删除“NA”值,并将第十一列“类”作为因子。我想使用“类”作为响应变量和其他列,除了第一个,作为预测变量。

在我第一次尝试时,我输入了:

然后,我使用类的对比而不是类。

我该如何纠正这些错误?我确定我的方法有问题。

0 投票
1 回答
754 浏览

r - R gbm.more() 函数不适用于所有发行版?

我正在尝试在 R 中使用 gbm.more 函数。为了清楚起见,我使用了规范的虹膜数据。当我指定分布=“多项式”时,下面的代码不起作用,但是当我指定分布=“高斯”时,代码起作用。这是有原因的还是只是功能的问题?

0 投票
2 回答
3631 浏览

r - 从 varImp 中提取预测变量名称

我正在使用 caret 包来运行 gbm 模型。模型运行后,我使用 varImp 函数提取重要预测变量列表(显示前 20 个)。但是,我想在字符列表中捕获预测变量的名称。我怎么做?从 varImp 返回的对象似乎没有列出预测器名称的属性 - 只有变量重要性。这是一个示例:

我想要一个像 ("Var126", "Var189", "Var113" ...)

提前致谢,

0 投票
1 回答
1814 浏览

r - 在 R 中使用交叉验证构建并行 GBM 模型

R 中的 gbm 包有一个方便的特性,即通过将每个折叠发送到它自己的节点来并行化交叉验证。我想构建在一系列超参数上运行的多个交叉验证的 GBM 模型。理想情况下,因为我有多个内核,我还可以并行构建这些多个模型。理论上,我可以使用 12 个内核同时构建 4 个模型,每个模型都使用 3 倍验证。像这样的东西:

我会使用 caret 包,但是我有一些超参数超出了 caret 中的默认值,而且我现在不希望在 caret 中构建我自己的自定义模型。我在 Windows 机器上,因为我知道这会影响使用哪个并行后端。

如果我这样做,我启动的 4 个集群中的每一个是否会产生 3 个工作人员,总共有 12 个工作人员离开?还是我一次只能有 4 个内核工作?

0 投票
1 回答
5915 浏览

r - 当 cv.folds > 0 时,R gbm 函数出错

我正在使用 gbm 来预测二进制响应。当我设置 cv.folds=0 时,一切正常。但是,当 cv.folds > 1 时,出现错误:Error in object$var.levels[[i]] : subscript out of bounds当交叉验证的第一次刺激完成时。有人说这可能是因为某些因子变量在训练或测试数据中缺少水平,但我尝试只使用数字变量并仍然得到这个错误。

有人对此有一些见解吗?谢谢!

回答我自己:问题解决了。这是因为这个函数中的一个错误。输入数据不能包含模型中变量以外的变量。

0 投票
1 回答
639 浏览

r - (R) gbm.plot 中的轴宽

希望有一些指示或一些经验见解,因为我真的对此失去了理智,已经尝试了整整 2 天来设置正确的值,以使函数从 gbm.plot 函数中吐出干净的简单线图(包 dismo &GBM)。

这是我开始的地方。bty=n in par 关闭盒子并让我只剩下左轴和下轴。Gbm.plot 通常会为每个解释变量吐出一个图,所以通常是 6 个图等,但我正在调整它以对每个变量执行一个并循环它。我已经删除了循环和许多其他代码,所以很容易看到发生了什么。

这就是最初的情况

所以这就是起始条件的样子。目标:使轴和刻度变粗。而已。

投入没有任何作用"lwd=20"par

添加axes=Fgbm.plot()关闭轴和它们的数字。所以我得出结论,这些轴的控制是由 处理的gbm.plot,而不是par。这就是令人沮丧和废话的地方。搜索中公认的智慧说lwd应该控制这一点,但它只控制摆动的中心线,正如我上面的注释。所以也许我可以axis(side=1, lwd=8)加入gbm.plot()

犯罪高手

它运行但莫名其妙地增加了一个平滑!(我保证,它很薄而且很难在网上看到,但它就在那里)。它添加了这些警告:

好吧,R 会无缘无故地成为一个混蛋,当它们出现时我会继续堵住它们。与以前一样带有轴的新代码现在更平滑地关闭了:

给出错误:

所以很明显在里面绘制轴,plot因为我不能影响轴par,我可以在plot. 我可以做我想做的事,让一个轴加粗,但这会导致更平滑和警告。我可以关闭平滑器,但是它失败了,因为它说plot.new没有被调用。这甚至不考虑我必须处理的另一个轴,plot.new如果我顺序调用 2 轴并允许更平滑,这也会导致失败。

我在这里是一个大笑话,还是我错过了一些明显的东西?我花了足够长的时间才弄清楚 par 应该在所有地块之前,除非你用 png 等输出它们,在这种情况下它必须在png&之间plot- 令人难以置信的是,这个信息不在?par. 我知道我会通过咆哮来跑题,对不起,但是,是的,整整 2 天。这是每个人在 R 中绘图的经历吗?

我要打开冰箱里的伏特加酒。我很感激我没有把完整的可重现代码放在这里,抱歉,如果绝对必要的话我可以这样做,但是进入可重现阶段实在是太浪费时间了,我希望有人能看到一个基本的逻辑/编码失败在尖叫他们从我给的。

多谢你们。

编辑:可重复性核心数据 csv:https ://drive.google.com/file/d/0B6LsdZetdypkWnBJVDJ5U3l4UFU (我之前曾尝试使这些数据可重复,但我不知道如何做到这一点)样本<-read。 csv("data.csv", header = TRUE, row.names=NULL) my_gbm_model<-gbm.step(data=samples, gbm.x=1:6, gbm.y=7, family = "bernoulli", tree .complexity = 2, learning.rate = 0.01, bag.fraction = 0.5))

0 投票
1 回答
489 浏览

r - 无法删除 plot.gbm 中的 y 轴标签

在 gbm.plot 中设置轴宽度的问题之后运行问题;我现在直接使用 plot.gbm 并且似乎无法删除 y 轴标签,这似乎是在 plot.gbm 函数代码中设置的。

结果: y轴标签

par尽管我尝试通过and删除它plot,y 轴标签仍然存在axis。我可以尝试挖掘函数并更改此(和类似的)行:

...但有人建议我不要这样做。任何想法为什么这可能有效?只是该功能会覆盖设置吗?

再现性:

0 投票
0 回答
893 浏览

r - GBM R包中的Huber损失函数参数

我正在使用 GBM 包来解决回归问题。我想测试 Huber 损失函数。我可以使用“huberized”值进行分配。但是,如何设置切削刃参数?

也许我在帮助中的某个地方错过了它。

0 投票
2 回答
2590 浏览

r - R - Caret - 在模型训练中使用 ROC 而不是准确性

嗨,我的名字是 Abhi,我正在使用插入符号来构建基于 gbm 树的模型。但是,我不想使用准确性,而是使用 roc 作为我的指标

这是我到目前为止的代码

但是,当我运行此代码时,我会收到警告

如何强制我的模型使用 roc 而不是准确性。我在这里做错了什么?

0 投票
1 回答
2566 浏览

r - 如何在 R 中导出 gbm 模型?

是否有在 R 中导出 gbm 模型的标准(或可用)方法?PMML 可以工作,但是当我尝试使用 pmml 库时,可能不正确,我得到一个错误:

例如,我的代码如下所示:

我得到的错误是:

我也尝试过传入数据集。在任何情况下,我都可以接受另一种我可以通过编程方式解析的格式(我将在 JVM 上评分),但如果有办法让它发挥作用,PMML 会很棒。