1

我正在尝试了解 XGBoost 算法并围绕它有一些问题。

我读过各种博客,但似乎都在讲述不同的故事。下面是我正在使用的代码片段(仅供参考)。

param <- list(  objective           =  'reg:linear',
                eta                 = 0.01,
                max_depth           = 7,
                subsample           = 0.7,
                colsample_bytree    = 0.7,
                min_child_weight    =  5
)

以下是我的 4 个问题:

1)XGBoost 似乎使用梯度下降通过改变系数来最小化成本函数。我知道它可以用于使用线性回归的 gblinear 模型。

但是,对于 gbtree 模型,XGboost 如何应用梯度体面,因为基于树的模型中没有系数可供模型更改。或者有吗?

2) 类似地,gbtree 模型使用参数 lambda 进行 L2 正则化,使用 alpha 进行 L1 正则化。我知道正则化对系数施加了一些限制,但是 gbtree 模型又没有系数。那么它如何对其施加约束呢?

3)目标函数的工作是什么。例如 reg:linear。据我了解,分配目标函数只会告诉模型使用哪个评估指标。但是,它有一个单独的 eval_metric 参数。那么为什么我们需要目标函数呢?

4) 简单来说,min_child_weight 是什么?我以为这只是最低限度的没有。叶节点中的观察值。但我认为这与粗麻布指标等有关,我不太了解。

因此,如果有人能以简单易懂的方式对这些内容进行更多了解,我将不胜感激?

4

0 回答 0