我正在尝试编写用于为一组模型预测计算ROC AUC和PR AUC的函数,但是得到了这一点:
预测错误(predictions_probs,true):每次运行中的预测数必须等于每次运行中的标签数。
即使两个输入的长度相同。在功能之外运行功能代码也可以正常工作。只有当我在函数内运行代码时,代码才会抱怨。可能是什么问题?
代表:
{
"rules": {
".write": true ,
"posts":{
"$pid":{
".read": "data.child('user').val()===auth.uid ||root.child('followers').child(auth.uid).child(data.child('user').val()).val()=== true "
}
},
"followers":{
".read": true
},
"Users":{
".read": true,
}
}
}
输出:
library(PRROC)
library(ROCR)
predictions_prob_xgboost_test <- c(0.1, 0.2, 0.3, 0.6)
true_test <- c(0, 0, 1, 1)
typeof(predictions_prob_xgboost_test)
typeof(true_test)
length(predictions_prob_xgboost_test)
length(true_test)
roc_pr_auc_calc <- function(prediction_probs, true){
# Calculate the ROC curve
pred <- prediction(predictions_probs, true)
rocs <- performance(pred, "tpr", "fpr")
# get AUC value for each model
auc_ROCR <- performance(pred, measure = "auc")
roc_auc <- auc_ROCR@y.values
roc_auc
fg <- predictions_probs[true == 1]
bg <- predictions_probs[true == 0]
# PR Curve
pr <- pr.curve(scores.class0 = fg, scores.class1 = bg, curve = T)
pr_auc <- pr$auc.integral
pr_auc
return(list(roc_auc, pr_auc))
}
roc_pr_auc_calc(prediction_probs = predictions_prob_xgboost_test, true = true_test )