ROCR软件包预测功能错误:每次运行中的预测次数必须等于每个ru错误的标签数

时间:2020-04-01 02:24:24

标签: r roc

我正在尝试编写用于为一组模型预测计算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 )

0 个答案:

没有答案