0

我想找到一种在 caret 包中定义 gbm 权重的方法。“caret”包的“train”函数中有一个参数“weights”,但描述说“这个参数只会影响允许案例权重的模型”。据我了解,“gbm”确实支持定义权重,但我不知道定义权重的格式。它只是 c(1,10) - 其中 1 代表多数类,10 代表少数类吗?

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

谢谢。

4

2 回答 2

2

在这篇文章中有一个使用weights. 在您的情况下,它将类似于

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

然后将此列用作权重。

于 2017-09-20T19:03:05.977 回答
1

据我所知,gbm是否支持案例权重和权重应该是数据框长度的向量。如果您只使用两个类,我相信您将不得不使用 ROC。我不确定我是否有资格回答您关于 ROC 与 Kappa 的问题,但这里有一篇 2013 年的论文,着眼于现实世界数据的几个指标的性能。普遍的看法似乎是,虽然 kappa 可能会受到偏斜的影响(ROC 似乎相对免疫),但 ROC 往往会掩盖较差的性能。

于 2015-08-07T14:38:00.560 回答