决策曲线分析(DCA)中平均净阈值用于评价模型算法(R自定义函数)
决策曲线分析(DCA)中平均净阈值用于评价模型算法
DCA分析虽然不强调用来评价模型算法或者变量组合的优劣,但是实际应用过程中感觉DCA曲线的走势和模型的效能具有良好的一致性,其实这种一致性也可以找到内在的联系,比如通过净阈值的计算公式可以知道净阈值的大小与真阳性率有密切的关系,而真阳性率和模型的效能也有一致性。
如果想用DCA曲线来挑选算法或者变量组合,有一个定量的指标就更加方便一些,这就有了为DCA曲线找一个定量指标的想法。
1. 微积分法
曲线下面积可能是比较直观的一种方法,首先想到的是用微积分的方法计算DCA曲线下面积,代码如下。因为对微积分并不熟悉,加上计算出的结果还会有负值的情况,所以不是太确定代码的正确性,大家谨慎采用。
WA_NBC <- function(df, pred, real, integration_limits = c(0, 1), prevalence) {# 内部函数计算净获益calculate_nbc <- function(pt) {# NBC函数的代码tp <- sum(df[[pred]] >= pt & df[[real]] == 1)fp <- sum(df[[pred]] >= pt & df[[real]] == 0)net_benefit <- tp/nrow(df) - fp/nrow(df) * pt/(1-pt)if (!is.null(prevalence)) {net_benefit <- net_benefit / prevalence}return(net_benefit)}# 计算加权平均净获益integrand <- function(x) {calculate_nbc(x)}integral_result <- stats::integrate(integrand, lower = integration_limits[1], upper = integration_limits[2])wa_nbc <- integral_result$value / diff(integration_limits)return(wa_nbc)
}
2. 净收益平均法
这种方法是计算指定阈值范围内的净阈值然后求平均。感觉更好理解一些,但是似乎技术含量低些。
library(purrr)mean_benefit <- function(df, pred, real, integration_limits = c(0, 1), prevalence) {calculate_nbc <- function(pt) {# NBC函数的代码tp <- sum(df[[pred]] >= pt & df[[real]] == 1)fp <- sum(df[[pred]] >= pt & df[[real]] == 0)net_benefit <- tp/nrow(df) - fp/nrow(df) * pt/(1-pt)if (!is.null(prevalence)) {net_benefit <- net_benefit / prevalence}return(net_benefit)}# 使用map_dbl对每个阈值计算净获益net_benefits <- map_dbl(seq(integration_limits[1], integration_limits[2], by = 0.01), ~ calculate_nbc(.x))# 计算加权平均净获益mean(net_benefits)
}
初步测试感觉在一定程度上能达到设计的目的,能反映变量组合之间的优劣(如下图),但是也有不好解释的地方,比如计算出的绝对值有没有意义,欢迎大家测试反馈。在和鲸社区上有一个项目可以进行体验和测试,包含了数据和代码。
相关文章:
决策曲线分析(DCA)中平均净阈值用于评价模型算法(R自定义函数)
决策曲线分析(DCA)中平均净阈值用于评价模型算法 DCA分析虽然不强调用来评价模型算法或者变量组合的优劣,但是实际应用过程中感觉DCA曲线的走势和模型的效能具有良好的一致性,其实这种一致性也可以找到内在的联系,比如…...
《经验分享 · 软考系统分析师》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...
记录一下 js encodeURI和encodeURIComponent URL转码问题
escape:由于它已经被废弃,不建议在任何新的代码中使用。encodeURI:当你需要对整个URI进行编码时使用,例如在将整个URL作为参数传递时。encodeURIComponent:当你需要编码URI中的某一部分,尤其是查询字符串参…...
【C语言】二维前缀和/求子矩阵之和
相信你是最棒哒!!! 目录 一、题目描述 正确代码 二、题目描述 题目代码 总结 一、题目描述 输入一个 𝑛 行 𝑚 列的整数矩阵,再输入 𝑞个询问,每个询问包含四个整数 𝑥1…...
SRS 服务器入门:实时流媒体传输的理想选择
在当今视频流媒体需求爆炸式增长的时代,如何选择一款高效、稳定且功能强大的流媒体服务器成为了许多开发者和企业关注的焦点。而 SRS(Simple Realtime Server)作为一款开源的流媒体服务器,以其卓越的性能和灵活的功能,…...
【ETCD】【源码阅读】configurePeerListeners() 函数解析
configurePeerListeners 是 ETCD 的一个核心函数,用于为集群中节点之间的通信配置监听器(Peer Listener)。这些监听器主要负责 Raft 协议的消息传递、日志复制等功能。函数返回一个包含所有监听器的列表。 函数签名 func configurePeerList…...
1_ssrf总结
content 什么是ssrf?简介原理 危害利用内网访问端口扫描fsockopenurlbypass127.0.0.0被禁止绕过302跳转DNS重绑定绕过 file协议dict协议gopher协议主从复制打redis打mysql打fastcgi协议打未授权redis Defence 什么是ssrf? 简介 SSRF(Server-Side Request Forger…...
深入解析 Redis
1. 为什么 Redis 性能至关重要? 在现代分布式应用中,Redis 被广泛作为缓存系统、消息队列、实时数据存储和会话管理等多种场景的解决方案。作为一个高性能的内存数据库,Redis 的设计理念是提供低延迟和高吞吐量的操作。然而,当 R…...
Visual Studio 2022发布UWP应用证书绑定失败
最近发布UWP应用时,卡在了关联产品这步,一直提示网络链接问题,获取不到产品信息。创建新项目也是这样,猜测低版本的VS不支持发布UWP应用了,便升级到了VS2022。VS2022创建新UWP工程确实可以关联发布应用,并成…...
K8S对接ceph的RBD块存储
1 PG数量限制问题 1.1 原因分析 1.还是老样子,先创建存储池,在初始化为rbd。 [rootceph141~]# ceph osd pool create wenzhiyong-k8s 128 128 Error ERANGE: pg_num 128 size 3 for this pool would result in 295 cumulative PGs per OSD (2067 tot…...
ragflow连不上ollama的解决方案
由于前期wsl默认装在C盘,后期部署好RagFlow后C盘爆红,在连接ollama的时候一直在转圈圈,问其他人没有遇到这种情况,猜测是因为内存不足无法加载模型导致,今天重新在E盘安装wsl 使用wsl装Ubuntu Win11 wsl-安装教程 如…...
ACL与Prefix List(前缀列表)
匹配工具一般搭配其他操作,可实现NAT,路由策略,策略路由,MQC,流量过滤等操作 通配符掩码 我们都知道子网掩码的1是精确匹配,1是大致匹配,1必须连续 我们也知道反掩码的1是大致匹配࿰…...
OpenSSH和OpenSSL升级
需求 centos7.9升级SSH和SSL OpenSSH升级为openssh9.8 OpenSSL升级为openssl-3.4.0 下载openssh最新版本与openssl对应版本 openssh最新版本下载地址 wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gzOpenSSL下载地址 这里下载的是3.4.0 wg…...
数据库继续学习
数据库中的外键约束的作用是什么? 外键约束用于在多表操作中保证数据的一致性、完整性和正确性。它确保引用的数据在主表中存在,从而避免孤立记录的出现。 物理外键与逻辑外键的选择? 推荐使用逻辑外键。逻辑外键是指在应用程序层面上实现外键…...
车载以太网-UDPNM
文章目录 UDPNM定义在车载以太网中的作用网络节点状态监测唤醒和睡眠管理网络拓扑发现工作流程消息发送消息接收与处理与其他车载网络协议的比较和协作UDPNM的工作原理是什么?1.消息构建与发送原理消息格式构建发送机制2.消息接收与响应原理接收过程响应机制3.状态管理与定时器…...
网页核心页面设计(第8章)
一、伪元素 伪元素是 CSS 中的一种选择器,用于选择某些特定的元素或元素的一部分,而这些元素本身并不存在于文档的结构中。伪元素使得网页设计师可以更灵活地控制样式,从而可以为元素的内容、框架或文本提供额外的样式,增强网页的…...
在PowerShell下运行curl命令出现错误:Invoke-WebRequest : 无法处理参数,因为参数名称“u”具有二义性
今天在Windows 11下测试Nanamq的HTTP API,按照其文档输入: curl -i --basic -u admin:public -X GET "http://localhost:8081/api/v4/subscriptions" 结果出现二义性错误: 而且输入curl --help命令想看看参数说明的时候ÿ…...
医疗花费预测——协方差矩阵和热力图
引言 在医疗数据分析中,预测个人的医疗花费是一个重要的课题。这不仅有助于个人健康管理,也为医疗资源的合理分配提供了数据支持。本篇博客,我们将探讨如何利用协方差矩阵和热力图来分析和预测个人的医疗花费。我们将以DataFountain提供的数…...
react antd tabs router 基础管理后台模版
在构建 React 后台管理系统时,使用标签页的方式展示路由是一种高效且用户友好的设计模式。这种实现方式通常允许用户在多个页面之间快速切换,并保留页面的状态,类似于浏览器的多标签页功能。 需求分析 1.动态标签页:根据用户的导…...
【数据结构——栈与队列】环形队列的基本运算(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:编写一个程序实现环形队列的基本运算。 相关知识 为了完成本关任务,你需要掌握: 初始化队列、销毁队列、判断队列是否为空、进队列…...
【数据结构——栈与队列】链栈的基本运算(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:编写一个程序实现链栈的基本运算。 相关知识 为了完成本关任务,你需要掌握: 初始化栈、销毁栈、判断栈是否为空、进栈、出栈、取栈…...
GIT CLONE ERROR: remote: [session-ec426a86] Access denied
报错信息: remote: [session-ec426a86] Access denied 错误原因: 1.更换了不同的GIT仓或者账号 2.之前设置了默认账号密码信息 3. git init 只初始化了GIT项目,并没有清空原有的账号密码配置 处理方法: win11需要到个人文件…...
GitHub 正式收录 MoonBit 作为一门通用编程语言!核心用户突破三万!
MoonBit 编程语言正式被 Github 收录!这对于一个仅有两年发展时间的编程语言来说是一种高度认可,期待未来由 MoonBit 编写的项目数量快速增长,早日成为首个由国人研发迈进 10 万➕ 用户的编程语言。 最近用户数已经接近 3 万(数据…...
PHP中GD库的使用
由于我要用到php的验证码 <?php session_start();// 生成验证码 $random_code substr(md5(uniqid(mt_rand(), true)), 0, 6);// 将验证码保存到 session 中 $_SESSION[captcha] $random_code;// 创建图片 $font 6; $image_width 100; $image_height 40;// 创建图像 $…...
docker安装Elasticsearch和Kibana
上传文件 加载tar包 安装 1.安装elasticsearch 通过下面的Docker命令即可安装单机版本的elasticsearch: docker run -d \--name es \-e "ES_JAVA_OPTS-Xms512m -Xmx512m" \-e "discovery.typesingle-node" \-v es-data:/usr/share/elastics…...
【Linux】文件管理必备知识和基本指令
【Linux】文件管理必备知识和基本指令 什么是操作系统什么是文件什么是路径01. ls 指令02. pwd命令03. cd 指令04. touch指令05.mkdir指令(重要):06.rmdir指令 && rm 指令(重要):rmdir指令rm指令 0…...
欢迪迈手机商城设计与实现
文末获取源码和万字论文,制作不易,感谢点赞支持。 题目:欢迪迈手机商城设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管…...
量化交易系统开发-实时行情自动化交易-3.4.2.3.数字货币市场深度数据
19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来聊聊基于Okex交易所API获取市场深…...
有序集合ZSET【Redis对象篇】
🏆 作者简介:席万里 ⚡ 个人网站:https://dahua.bloggo.chat/ ✍️ 一名后端开发小趴菜,同时略懂Vue与React前端技术,也了解一点微信小程序开发。 🍻 对计算机充满兴趣,愿意并且希望学习更多的技…...
力扣-图论-9【算法学习day.59】
前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…...
黑彩网站充值就给你做单子/网站seo优化软件
1.引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。第三:提高线程的可管理性。线…...
做网站专业/东莞网站建设最牛
http://jaist.dl.sourceforge.net/sourceforge/pidgin/pidgin-2.3.1.exe转载于:https://blog.51cto.com/axlrose/1294556...
上海企业网站建设/百度网页pc版登录
地球系统科学读书会 双线性神经网络方法:双线性神经网络方法:双线性神经网络方法: 示例:图中下边公式为图中上边网络的描述示例:图中下边公式为图中上边网络的描述示例:图中下边公式为图中上边网络的描述 …...
白云区网站开发公司电话/品牌推广方式
平衡电桥 等电位点之间连接任意的阻值不会破坏其他支路量 因为电流计两端电势相等,电压为0,所以没有电流 等效电路...
沈阳网站建设公众号/网站建设的数字化和互联网化
源码 资源在qq群:2076966127 这个是我更新这个系列的第二期,现在看看几个月之前画的UI我真想吐了。好丑啊~~~~~ 现在我再一些大型的 图标网站找到了很多好看简介免费的图标~~ https://www.flaticon.com 这个就很不错~ 还是先准备好你的QtDesigner这个原本是为了C准备…...
桂林网络设计/广州seo网站开发
工业视觉钢材缺陷检测 实战项目 项目背景概述 质量是制造企业的核心竞争力之一,企业对产品质量的要求越来越高。但是,产品在制造过程中有时会出现表面缺陷,如何进行高效的质量控制来避免表面瑕疵产生,一直是制造企业面临的棘手问…...