在 xgboost 中,可以weight
为 a设置参数DMatrix
。这显然是一个权重列表,其中每个值都是相应样本的权重。我找不到有关这些权重如何在梯度提升过程中实际使用的任何信息。它们有关系eta
吗?
例如,如果我将weight
所有样本设置为 0.3 并eta
设置为 1,这是否与设置eta
为 0.3 和weight
1 相同?
在 xgboost 中,可以weight
为 a设置参数DMatrix
。这显然是一个权重列表,其中每个值都是相应样本的权重。我找不到有关这些权重如何在梯度提升过程中实际使用的任何信息。它们有关系eta
吗?
例如,如果我将weight
所有样本设置为 0.3 并eta
设置为 1,这是否与设置eta
为 0.3 和weight
1 相同?
xgboost
DMatrix
正如您所指出的,例如允许在构建 的过程中进行加权。该权重直接与实例相关联,并在整个训练过程中随其移动。因此它包含在梯度和粗麻布的计算中,并直接影响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 和weight
1 相同?
所有实例的常量weight
1 是默认值,因此将所有实例的常量更改为 0.3 仍然是相等的权重,因此这不会对事情产生太大影响。但是,eta
从 0.3 设置为 1 会使训练更具侵略性。
weight
在xgboost 中是为泊松分布目标输入DMatrix
风险变量(例如保险单持续时间)的唯一正确方法,例如保险索赔频率(即何时'objective': 'count:poisson'
)。
更多信息
那么有哪些不正确的方法呢?与 Stack Exchange 上的回复相反,base_margin
并且set_base_margin
. 我将所有这三个选项与 GLM sample_weight
(通过PoissonRegressor
'sfit
方法公开)进行了基准测试,并且只weight
生成了类似的无偏模型(从各个特征的实际与预测图可以看出)。更不用说早期停止指标(泊松负对数似然或 RMSE)通过切换到weight
(下降到比 GLM 改进的水平)显着提高(降低)。