ROC评分为gbm包

时间:2014-03-13 21:40:58

标签: r roc auc gbm

我无法使用gbm包计算ROC得分(AUC)。我正在使用增强的回归树。我正在运行的脚本是:

testing.tc5.lr005 <- gbm.step(data=ModelData, 
gbm.x = 3:4,
gbm.y = 2,
family = "gaussian",
tree.complexity = 5,
learning.rate = 0.005,
bag.fraction = 0.5)

它应该产生“训练数据ROC得分”和“交叉验证ROC得分”以及其他相关参数。我没有获得ROC分数。我打电话给names(testing.tc5.lr005)。它会列出cv.roc.matrix,但如果我拨打testing.tc5.lr005$cv.roc.matrix,则会生成以下内容:

[1] 0 0 0 0 0 0 0 0 0 0

我尝试通过roc(TestData$TN,predTN)计算ROC AUC(TestData~用于预测的数据,即观察值; predTN~预测值)。它导致[1]NA。我不知道我做错了什么,虽然模型的其余部分似乎在合理的测试和CV相关性以及SE值方面做得很好。 任何有关我错误或替代方案的指示都会非常感激! 感谢

2 个答案:

答案 0 :(得分:0)

首先,我认为您正在将gbm软件包与dismo软件包结合使用。正如Calimo所说,gbm.step在dismo之外不存在。

我无法回答你如何计算ROC的问题(我没有专家 - 我有同样的问题以及我是怎么来到这里的),但我可以告诉你dismo不会计算它。我看了一下dismo包中的代码,看来他们不允许对高斯族进行ROC计算。

答案 1 :(得分:0)

我通过深入挖掘代码并遵循线程来找到答案:

训练数据AUC = self.roc = $ training.stats $ discrimination = $ self.statistics $ discrimination

Cv AUC得分= cv.roc = cv.stats $ discrimination.mean = $ cv.statistics $ discrimination.mean

Se = cv.roc.se = cv.stats $ discrimination.se = $ cv.statistics $ discrimination.se

用法:模型对象名称+代码的最后一位,例如

myobject$self.statistics$discrimination

编辑:gbm.step已经计算了你想要的值,并向你展示了它们,但是它们被隐藏在模型对象列表中。