如何在 class 不平衡数据集 (gbm) 的 gbm 包和 Kappa 统计数据中定义权重

How to define weights in gbm package & Kappa statistic for class imbalanced data set (gbm)

我想找到一种方法来为 caret 包中的 gbm 定义权重。在 "caret" 包的 "train" 函数中有一个参数 "weights",但描述为 "This argument will only affect models that allow case weights"。根据我的理解 "gbm" 确实支持定义权重,但我不知道定义权重的格式。它只是 c(1,10) - 其中 1 代表多数 class,10 代表少数 class?

第二个问题是关于Kappa统计的。我读到 Kappa 是 class 不平衡数据集的更好性能指标,但未能理解如何实现。对于 class 不平衡数据集,为什么 Kappa 是比 ROC 更好的性能指标,我将不胜感激。

谢谢。

据我所知,gbm 确实支持案例权重,权重应该是数据帧长度的向量。如果你只使用两个 类 我相信你会 使用 ROC。我不确定我是否有资格回答你关于 ROC 与 Kappa 的问题,但 here 是 2013 年的一篇论文,研究了现实世界数据的几个指标的性能。一般的收获似乎是,虽然 kappa 可能会受到偏斜的影响(ROC 似乎相对免疫),但 ROC 往往会掩盖表现不佳。

在这个article中有一个使用weights的例子。 在您的情况下,它将类似于

data$weights <- ifelse(data$class == "major", 1, 10)

然后用这一列作为权重。