library(pROC)
# label: 金标准,0 1 变量
# pred: 模型预测值,连续变量# 方法一
cal_metrics <- function(label, pred){roc.p=pROC::roc(label, pred)if (roc.p$auc>0.5){cutoff=roc.p$thresholds[which.max(roc.p$sensitivities+roc.p$specificities)]sensitivity=roc.p$sensitivities[which.max(roc.p$sensitivities+roc.p$specificities)]specificity=roc.p$specificities[which.max(roc.p$sensitivities+roc.p$specificities)]df=data.frame(type='positive classification',auc=round(roc.p$auc,3),cutoff=cutoff,sensitivity=sensitivity,specificity=specificity)return(df)}else{cutoff=roc.p$thresholds[which.min(roc.p$sensitivities+roc.p$specificities)]sensitivity=roc.p$sensitivities[which.min(roc.p$sensitivities+roc.p$specificities)]specificity=roc.p$specificities[which.min(roc.p$sensitivities+roc.p$specificities)]df=data.frame(type='negative classification',auc=1-round(roc.p$auc,3),cutoff=cutoff,sensitivity=1-sensitivity,specificity=1-specificity)return(df)}
}# 方法二:
roc.p=pROC::roc(label, pred)
cutoff=roc.p$thresholds[which.max(roc.p$sensitivities+roc.p$specificities)]pred_b = as.integer(pred > cutoff)
cft = table(pred_b, label)cm = confusionMatrix(cft, positive = "1", mode = "everything")
paste0('cutoff: ', cutoff)
print(roc.p$auc)
print(cm)

参考文献

  1. https://github.com/cran/cutoff/blob/master/R/roc.R
  2. https://www.jianshu.com/p/c61feeb8b36f

【R语言】预测模型最合适阈值Cutoff选取及其它指标计算相关推荐

  1. 【机器学习深度学习】预测模型最合适阈值Cutoff选取及其它指标计算(Python版本)

    绘制ROC曲线,基于ROC曲线上各点的约登指数计算最佳cutoff,从而计算其它指标 from sklearn.metrics import roc_auc_score, f1_score, accu ...

  2. R语言glm拟合logistic回归模型:模型评估(计算模型拟合的统计显著性)、模型评估(赤信息AIC指标计算)

    R语言glm拟合logistic回归模型:模型评估(计算模型拟合的统计显著性).模型评估(赤信息AIC指标计算) 目录

  3. R语言构建xgboost模型:模型的特性重要度计算及可视化、模型对应的结构树(文本文件)

    R语言构建xgboost模型:模型的特性重要度计算及可视化.模型对应的结构树(文本文件) 目录

  4. R语言检验相关性系数的显著性:使用cor.test函数计算相关性系数的值和置信区间及其统计显著性(如果变量来自正态分布总体使用皮尔森方法pearson)

    R语言检验相关性系数的显著性:使用cor.test函数计算相关性系数的值和置信区间及其统计显著性(如果变量来自正态分布总体使用皮尔森方法pearson) 目录

  5. R语言使用dplyr包的groupby函数和summarise函数计算每个分组数据的百分位数、quantile函数计算百分位数、通过设置probs参数计算百分位数

    R语言使用dplyr包的groupby函数和summarise函数计算每个分组数据的百分位数.quantile函数计算百分位数.通过设置probs参数计算百分位数 目录

  6. R语言实现相空间重构的参数选取

    前言 最近写论文用到了相空间重构(PSR)技术,该方法简单来说就是将一个一维的时间序列通过重构的方法映射为一个矩阵,且该矩阵保留了原始时间序列的特征. 进行PSR的关键是确定两个参数:延迟时间和嵌入维 ...

  7. 多言统计及R语言建模按组距为300编制频数表,计算频数,频率和累积频率表,并绘制直方图

    按组距为300编制频数表,计算频数,频率和累积频率表,并绘制直方图 某厂对50个计件工人某月份工资进行登记,获得以下原始资料(单位:元) 试按组距为300编制频数表,计算频数,频率和累积频率表,并绘制 ...

  8. r语言dataellipse_几行R语言代码搞定菌群与环境因子或临床指标相关性的可视化...

    相关性分析是生物信息学中常用的分析方法,可以用来分析菌群与菌群的关联,菌群与因子的关联等等.本文使用R语言内置函数cor()计算变量之间的相关系数,并用corrplot包进行可视化.(本文测试数据为R ...

  9. 主成分分析(PCA)原理及R语言实现

    在生物信息分析中,PCA.t-SNE和diffusionMap其实是一类东西. StatQuest: Principal Component Analysis (PCA) clearly explai ...

  10. 精心整理 | R语言中文社区历史文章整理(类型篇)

    2018年过去一半了~又到了盘点的时间~感谢长时间来各位好友的关注,我们的成长与你们的爱护是分不开的.更感谢各位老师的投稿,支撑起了我们的这个社区,让更多R语言的爱好者和从业者获得最棒的知识!本文选取 ...

最新文章

  1. Python 安装管理器 pythonz
  2. mybatis中$和#的区别
  3. Python变量使用前必须先声明,并且一旦声明就不能在当前作用域内改变其类型————(错)
  4. Fiddler抓包使用教程-基本功能介绍
  5. 没有找到**.dll的解决方案
  6. Oracle→表、表字段数据类型、表DDL语句、数据DML语句、约束、case...when、decode
  7. Python基础学习5 -字符串
  8. 博客开通了-里面有秘密哦
  9. ppt生成eps文件_eps是什么格式怎么打开?全面解析图片的eps是什么格式
  10. Latex 详细安装教程
  11. winrar4.0 注册码
  12. 抖音热门音乐整理合集歌曲打包分享
  13. html小游戏——看你有多色
  14. 现实版“武大郎和潘金莲”的婚姻情感纠葛
  15. 【数据库系统概论】基础知识总结
  16. 家里两个孩子,你们会一个跟爸姓,一个跟妈姓吗?
  17. 白杨SEO:百度算法更新大全合集49条(截至2021年9月),做百度关键词搜索排名必看!
  18. x_train, x_test, y_train, y_test到底是什么?
  19. onReachBottom无法触发也不报错
  20. unity 3d slider机械臂转动

热门文章

  1. ctf GetFlag
  2. debian7升级到debian9
  3. Apache Rewrite详细配置与使用说明
  4. 《英语语法新思维初级教程》学习笔记(八)一般时态
  5. 改进left函数,截取varchar需要的字符串长度
  6. 局域网服务器共享文件夹设置,局域网共享设置如何操作?怎么实现局域网文件夹共享?...
  7. 如果延迟退休势在必行,区块链如何助力“养老助老”?
  8. C++ 自定义新的运算符
  9. 【悟空云课堂】第七期:不安全的反射漏洞(CWE-470: Use of Externally-Controlled Input to Select Classes or Code)
  10. spring security集成jwt