使用' gbm'在R包中创建的模型' dismo'具有R包中的功能' gbm'

时间:2015-10-23 00:57:16

标签: r machine-learning gbm

这是previous question的后续问题,我回答了最近一次回答。

我已经使用gbm构建了多个dismo::gbm.step模型,这些模型依赖于R包gbm中的gbm拟合函数,以及R包中的交叉验证工具splines

作为我的分析的一部分,我想使用R中可用的一些图形工具(例如透视图)来可视化数据中的成对交互。 gbmdismo包都具有检测和建模数据中交互的功能。

Elith等人解释了dismo中的实现。 al(2008)并返回一个统计量,表明模型预测偏离预测变量的线性组合,同时保留所有其他预测变量。

gbm中的实现使用Friedman的H统计量(Friedman & Popescue, 2005),并返回不同的度量标准,也不会设置其他变量。

使用dismo::gbm.interactions建模和绘制的互动非常棒,而且内容非常丰富。但是,我还想使用gbm::interact.gbm,部分用于发布强度,并比较两种方法的结果。

如果我尝试在使用gbm::interact.gbm创建的gbm.object中运行dismo,则会返回错误...

"Error in is.factor(data[, x$var.names[j]]) : 
  argument "data" is missing, with no default"

我理解dismo::gmb.step添加了作者认为对gbm model有用的额外数据。

我也明白,我的问题的答案在于源代码。

我的问题是......

  1. 是否可以修改gbm中创建的dismo对象以用于gbm::gbm.interact?如果是的话,这会由......完成吗?

    一个。修改gbm中创建的dismo::gbm.step对象?

    湾修改gbm::interact.gbm的源代码?

    ℃。做其他事情?

  2. 我将通过源代码尝试自己解决这个问题,如果我在任何人回答之前提出解决方案,我会回答我自己的问题。

1 个答案:

答案 0 :(得分:-1)

var query = new Parse.Query(Appointment); query.equalTo("User", request.user); query.include('Rate'); query.include('Clients'); // Assumes Client column is now an Array of Client Parse.Objects query.find().then(function(appointments){ // You'll find Client Parse.Objects already nested and provided for you in the appointments. console.log(appointments[0].get('Clients')); }); 函数需要数据作为参数gbm::interact.gbm

interact.gbm <- function(x, data, i.var = 1, n.trees = x$n.trees) dismogbm.object gbm基本相同,但附加了额外信息,因此我无法想象更改{{1}会有所帮助。