我正在尝试计算我用cv.glmnet建立的逻辑模型的Brier分数。在通过交叉验证选择了阿尔法值和λ值之后,使用测试数据集,我应用了predict()函数,获得了预测的组水平(疾病与非疾病)。因此,我有两个变量,ypredict,这是我的测试数据集的预测组状态,ytrue,预测组的真实组状态。
因此,我很难弄清楚如何从这两个响应向量中获得Brier分数。在这方面的任何帮助都将非常感谢。
发布于 2021-11-27 18:40:17
使用示例数据集:
library(glmnet)
library(DescTools)
X_train = as.matrix(MASS::Pima.tr[,1:7])
y_train = ifelse(MASS::Pima.tr[,8] == "Yes",1,0)
fit = cv.glmnet(x=X_train,y=y_train,family="binomial")让我们以概率形式获得预测:
X_test = as.matrix(MASS::Pima.te[,1:7])
y_test = ifelse(MASS::Pima.te[,8] == "Yes",1,0)
ypredict = predict(fit,X_test,type = "response")
head(ypredict)
lambda.1se
1 0.5435120
2 0.1603127
3 0.1412934
4 0.1385610
5 0.7309207
6 0.5935130然后使用BrierScore from DescTools:
BrierScore(ypredict,y_test)
[1] 0.3345311https://stackoverflow.com/questions/70040451
复制相似问题