验证R的GLMNET包中的AUC值

时间:2017-11-03 15:31:01

标签: r glmnet auc

我正在使用R中glmnet库的cv.glmnet函数。我运行以下函数:

model = cv.glmnet(x = data, y = label, family = 'binomial', alpha = 0.1,type.measure = "auc")

从以下enter image description here我预计得到的AUC介于0.62和0.64

之间

但是,当我将相同的数据(即训练数据)传递给预测函数时,即

pred = predict(fit, newx = data, type = 'class',s ="lambda.min")
auc(label,pred)

我只回到0.56的AUC。

我理解交叉验证的随机性 - 但直观地说,我希望在交叉验证建议的范围内得到一些东西。

我错过了什么?提前致谢

1 个答案:

答案 0 :(得分:0)

我不确定auc()的工作方式(这似乎是glmnet的内部功能),但是您应该尝试将预测作为链接或响应而不是类传递给

pred = predict(fit, newx = data, type = 'response',s ="lambda.min") auc(label,pred)

class通过单一响应阈值(例如0.5)为您提供预测的类,而response为您提供了可用于计算整个响应函数中auc的概率。