我在插入符上使用GBM的这两个派生。
我在同一个数据集上尝试了两种算法,它们返回不同的精度并在不同的时间执行。
顾名思义,我可以认为第一个在某处使用线性函数,另一个在树中使用。
无论如何,我不明白它在哪里使用线性而不是树。
我知道GBM算法使用树作为预测变量,难道前一种情况使用了像训练这样的不同结构?
在哪里可以找到有关此主题的文档?

谢谢

最佳答案

您可以在插入符号github页面上单独的models上找到更多详细信息,该页面上所有模型的代码都位于该页面上。插入符文档位于here

但是,您应该注意两个模型之间使用的参数的差异:


xgbLinear用途:nrounds,lambda,alpha,eta
xgbTree使用:nrounds,max_depth,eta,gamma,colsample_bytree,
min_child_weight


这些选择会影响模型的结果,并将导致不同的预测。因此也具有不同的准确性。 xgboost中可用的其他选项将与xgboost的默认设置一起使用。

脱字符号模型包含点号(...)选项。因此,如果要使用gamma训练xgbLinear,则可以在训练功能中指定此项。但不在grid参数中。其他任何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)

08-19 22:44