我无法使用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值方面做得很好。
任何有关我错误或替代方案的指示都会非常感激!
感谢
答案 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已经计算了你想要的值,并向你展示了它们,但是它们被隐藏在模型对象列表中。