我在插入符上使用GBM的这两个派生。
我在同一个数据集上尝试了两种算法,它们返回不同的精度并在不同的时间执行。
顾名思义,我可以认为第一个在某处使用线性函数,另一个在树中使用。
无论如何,我不明白它在哪里使用线性而不是树。
我知道GBM算法使用树作为预测变量,难道前一种情况使用了像训练这样的不同结构?
在哪里可以找到有关此主题的文档?
谢谢
最佳答案
您可以在插入符号github页面上单独的models上找到更多详细信息,该页面上所有模型的代码都位于该页面上。插入符文档位于here。
但是,您应该注意两个模型之间使用的参数的差异:xgbLinear
用途:nrounds,lambda,alpha,etaxgbTree
使用: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)