我在卡雷特上使用这两个GBM的衍生物。我在相同的数据集上尝试了这两种方法,它们返回不同的精度,并在不同的时间执行。用这个名字,我可以认为第一个函数在某个地方使用线性函数,而另一个函数使用树。无论如何,我不明白它在哪里使用线性而不是树。我知道GBM算法使用树作为预测器,可以是第一种情况下使用不同结构的训练吗?在哪里可以找到有关这个主题的一些文档?
谢谢
发布于 2016-09-26 09:26:30
您可以在插入符号github页面上找到模型所有代码所在的单独模型的更多详细信息。卡雷特文档位于这里。
但是,您应该注意到在这两个模型之间使用的参数的差异:
xgbLinear用途: nrounds,lambda,alpha,etaxgbTree用途:n圆桌会议,max_depth,eta,gamma,colsample_bytree,min_child_weight这些选择将影响模型的结果,并将导致不同的预测。因此也有不同的精确度。在xgboost中可用的其他选项将与xgboost的默认设置一起使用。
Caret模型包含点点(.)选项。因此,如果您想使用gamma来训练xgbLinear,您可以在train函数中指定这一点。但不在网格参数中。对于任何其他xgboost参数也是如此。
(很糟糕)例子:
grid = expand.grid(nrounds = c(10,20), lambda= c(0.1), alpha = c(1), eta = c(0.1))
train(Species ~ ., data = iris, method = "xgbLinear", tuneGrid = grid, gamma = 0.5)https://stackoverflow.com/questions/39697972
复制相似问题