我正在使用R中glmnet库的cv.glmnet函数。我运行以下函数:
model = cv.glmnet(x = data, y = label, family = 'binomial', alpha = 0.1,type.measure = "auc")
之间
但是,当我将相同的数据(即训练数据)传递给预测函数时,即
pred = predict(fit, newx = data, type = 'class',s ="lambda.min")
auc(label,pred)
我只回到0.56的AUC。
我理解交叉验证的随机性 - 但直观地说,我希望在交叉验证建议的范围内得到一些东西。
我错过了什么?提前致谢
答案 0 :(得分:0)
我不确定auc()的工作方式(这似乎是glmnet的内部功能),但是您应该尝试将预测作为链接或响应而不是类传递给
pred = predict(fit, newx = data, type = 'response',s ="lambda.min")
auc(label,pred)
class通过单一响应阈值(例如0.5)为您提供预测的类,而response为您提供了可用于计算整个响应函数中auc的概率。