20

在 xgboost 中,可以weight为 a设置参数DMatrix。这显然是一个权重列表,其中每个值都是相应样本的权重。我找不到有关这些权重如何在梯度提升过程中实际使用的任何信息。它们有关系eta吗?

例如,如果我将weight所有样本设置为 0.3 并eta设置为 1,这是否与设置eta为 0.3 和weight1 相同?

4

2 回答 2

25

xgboostDMatrix正如您所指出的,例如允许在构建 的过程中进行加权。该权重直接与实例相关联,并在整个训练过程中随其移动。因此它包含在梯度和粗麻布的计算中,并直接影响xgboost模型的分割点和训练。

这里这里

实例权重文件

XGBoost 支持为每个实例提供一个权重来区分实例的重要性。例如,如果我们为示例中的“train.txt”文件提供一个实例权重文件,如下所示:

火车.txt.重量

1

0.5

0.5

1

0.5

这意味着 XGBoost 会更加强调第一个和第四个实例,也就是训练时的正实例。配置与配置组信息类似。如果实例文件名为“xxx”,XGBoost 会检查同目录下是否有名为“xxx.weight”的文件,如果有,则在训练模型时使用权重。

它与 eta

eta简单地告诉xgboost最后一棵树训练到整体中的混合量。衡量集成在每次迭代中的贪心程度。

例如,如果我将weight所有样本设置为 0.3 并eta 设置为 1,这是否与设置eta为 0.3 和weight1 相同?

  • 所有实例的常量weight1 是默认值,因此将所有实例的常量更改为 0.3 仍然是相等的权重,因此这不会对事情产生太大影响。但是,eta从 0.3 设置为 1 会使训练更具侵略性。

于 2016-03-17T13:22:01.753 回答
0

weightxgboost 中是为泊松分布目标输入DMatrix风险变量(例如保险单持续时间)的唯一正确方法,例如保险索赔频率(即何时'objective': 'count:poisson')。

更多信息

那么有哪些不正确的方法呢?与 Stack Exchange 上的回复相反,base_margin并且set_base_margin. 我将所有这三个选项与 GLM sample_weight(通过PoissonRegressor'sfit方法公开)进行了基准测试,并且只weight生成了类似的无偏模型(从各个特征的实际与预测图可以看出)。更不用说早期停止指标(泊松负对数似然或 RMSE)通过切换到weight(下降到比 GLM 改进的水平)显着提高(降低)。

于 2021-08-01T12:11:30.647 回答