如何计算真正例率?

我制作了一个预测航班晚到的模型。我想在假阳性率为50%的情况下查看真正例率。我可以在绘制的ROC曲线中看到这一点。但我想精确计算这个值,而不仅仅是从图表中读取。有谁有想法吗?

library(modelr)library(dplyr)library(sparklyr)library(ggplot2)library(nycflights13)data(flights)RNGkind(sample.kind="Rounding")set.seed(42)flights <- mutate(flights, late_arrival = ifelse(arr_delay > 30, 1, 0))spark_install()sc <- spark_connect(master = "local")flights_tbl <- copy_to(sc, flights, "flights")flights_tbl <- flights_tbl %>% na.omit(flights_tbl)partition <- flights_tbl %>%   select(late_arrival, carrier, dep_delay, month, year) %>%  sdf_random_split(train = 0.75, test = 0.25)train_tbl <- partition$traintest_tbl <- partition$test########### my modelml_formula <- formula(late_arrival ~ carrier + dep_delay + month + year)ml_log <- ml_logistic_regression(train_tbl,ml_formula)ml_logpred_lr <- ml_predict(ml_log, test_tbl) %>% collectpred_lr$p1 <- unlist(pred_lr$probability)[ c(FALSE,TRUE) ]########## my ROC curve plotROC_lr <- get_roc(L = pred_lr$late_arrival, f = pred_lr$p1)ggplot(ROC_lr, aes(x = FPR, y = TPR)) + geom_line(aes(col = "my prediction")) + ggtitle("ROC curve of my prediction", "logistic regression to predict late arrivals based on carrier, departure delay, month, and year")

回答:

我不熟悉get_roc(),但你可以打印ROC_lr来获取一些附近的值:

print(ROC_lr)

但你可以尝试另一个包:pROC包有一个名为coords()的函数,可以在ROC曲线的某个点计算值:

library(pROC)# 仅为示例提供一些随机值labels <- c(0, 1, 0, 1, 0, 0, 0, 1, 0, 0)scores <- 1:10# 你可以使用pROC::roc()代替get_roc()roc <- roc(labels, scores)# 假设你想要FPR为0.5并计算TPRfpr <- 0.5# coords()需要特异性(1 - FPR)来计算敏感性(TPR)fpr50 <- coords(roc, 1 - fpr, input = "specificity")# 从结果中获取TPRtpr <- fpr50$sensitivitytpr#[1] 0.6666667

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注