gpt4 book ai didi

machine-learning - xgb.DMatrix 中的权重参数和 super 参数列表中的scale_pos_weight 之间的区别?

转载 作者:行者123 更新时间:2023-11-30 08:58:40 27 4
gpt4 key购买 nike

我有点难以理解 weight 之间的区别。函数位于 xgb.DMatrixsum_pos_weight param 中的参数列表。我正在经历以下code它正在使用希格斯数据;

<小时/>

由于数据不平衡,作者定义了一个权重参数:

weight <- as.numeric(dtrain[[32]]) * testsize / length(label)

sumwpos <- sum(weight * (label==1.0))
sumwneg <- sum(weight * (label==0.0))

但是第 32 列已经是 weight变量,所以作者正在修改一个已经定义的权重变量?

然后,修改weight变量被设置为 xgb.DMatrix 的“权重”参数:

xgmat <- xgb.DMatrix(data, label = label, weight = weight, missing = -999.0)

此外,在参数列表中作者有:"scale_pos_weight" = sumwneg / sumwpos, .

所以scale_pos_weightsumneg 的函数这是 weight 的函数这是 a previously defined weight (column 32) 的函数。所以我很困惑。

  1. 作者在以下行中做了什么:weight <- as.numeric(dtrain[[32]]) * testsize / length(label)

  2. 设置weight有什么区别?在xgb.DMatrix再次在 sum_pos_weight

最佳答案

当你设置

xgmat <- xgb.DMatrix(data, label = label, weight = weight, missing = -999.0)

weight应该是与您的数据行相对应的向量

例如,如果您有以下数据:

  A B C
1 1 1 1
2 2 2 2

您需要设置weight作为 2 个权重的向量

weight <- c(1, 2)

因此,第一个事件的权重为 1,第二个事件的权重为 2。你问自己为什么好?假设事件 1 发生了 1 次,事件 2 发生了 2 次,您希望对它们进行共同响应权重,特别提及该事件发生的时间。

以下是使用权重的更多示例:

  1. 如果您希望最近发生的事件具有更多“值(value)”
  2. 您对数据行的置信度。您将把所有权重设置在 0 到 1 之间,权重将代表您对该数据的确定程度。例如,如果权重 = 0.88,则该行的置信度为 88%
  3. 如果您有重复的事件。您可以设置它们一次,并根据它们重复的次数赋予它们权重,而不是创建更多行

scale_pos_weight通常当您有“不平衡数据”时使用。例如,假设您有一个分类问题,其中 5% 的数据为 1,95% 的数据为 0,您希望为每个积极“事件”赋予更多权重。所以你可以设置scale_pos_weight = 19(或者如作者所写:sumneg/sumpos)

至于“作者”重新定义权重。如果没有完整的代码,我无法知道他在那里做了什么,但我假设他正在对权重进行某种标准化。

关于machine-learning - xgb.DMatrix 中的权重参数和 super 参数列表中的scale_pos_weight 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49534974/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com