当前位置: 首页 > news >正文

R数据分析:多分类问题预测模型的ROC做法及解释

有同学做了个多分类的预测模型,结局有三个类别,做的模型包括多分类逻辑回归、随机森林和决策树,多分类逻辑回归是用ROC曲线并报告AUC作为模型评估的,后面两种模型报告了混淆矩阵,审稿人就提出要统一模型评估指标。那么肯定是统一成ROC了,刚好借这个机会给大家讲讲ROC在多分类问题情形下的具体使用和做法。

ROC 曲线回顾

ROC 曲线(Receiver Operating Characteristic Curve):展示分类模型的真阳性率(TPR) 和 假阳性率(FPR)的关系。

  1. 真阳性率 (TPR):模型正确分类正样本的比例。
  2. 假阳性率 (FPR):模型错误地把负样本判为正样本的比例。

其中的逻辑就是分类问题是要看概率阈值进行类别划分的,取不同的概率阈值,真阳性和假阳性率是不一样的。ROC曲线就是在所有可能的阈值下,绘制 TPR(纵轴) 对 FPR(横轴)的曲线。

而AUC(Area Under the Curve)就是ROC 曲线下的面积,反映模型的整体分类能力。AUC = 1,说明模型完美分类;AUC = 0.5,相当于随机猜测。


多分类 ROC 的挑战

但是在多分类问题中,模型输出的不是“正/负”,而是多个类别(如 A、B、C)。与二分类不同,多分类任务中有多个类别,ROC 就无法直接绘制了。这个时候就需要变一下,我们常用两种方法将多分类任务转化为多个二分类问题:

  1. One-vs-Rest (OvR):针对每个类别,将其视为“正类”,其他类别视为“负类”,分别绘制 ROC 曲线。
  2. One-vs-One (OvO):对每两个类别分别计算 ROC 曲线。

举个例子: 假设我们有 3 个类别:苹果(A)香蕉(B)橙子(C)

  • OvR 方法:针对“苹果 vs. 非苹果”、“香蕉 vs. 非香蕉”、“橙子 vs. 非橙子”,分别绘制 ROC。
  • OvO 方法:只考虑两两类别,如“苹果 vs. 香蕉”、“苹果 vs. 橙子”、“香蕉 vs. 橙子”。

我们具体来看一下两种方法。

方法 1:One-vs-Rest (OvR)

每个类别都当作“正类”,其余类别当作“负类”,逐一绘制 ROC 曲线。比如结局有 3 个类别:苹果(A)香蕉(B)橙子(C)

http://www.lryc.cn/news/519782.html

相关文章:

  • 数据结构与算法之二叉树: LeetCode 654. 最大二叉树 (Ts版)
  • Linux 容器漏洞
  • file与io流(1)
  • 忘记了PDF文件的密码,怎么办?
  • Linux权限管理(用户和权限之间的关系)
  • Python Selenium库入门使用,图文详细。附网页爬虫、web自动化操作等实战操作。
  • 【Uniapp-Vue3】使用defineExpose暴露子组件的属性及方法
  • 【多模态LLM】英伟达NVLM多模态大模型训练细节和数据集
  • HTTP详解——HTTP基础
  • MySQL教程之:输入查询
  • docker+ffmpeg+nginx+rtmp 拉取摄像机视频
  • 不同音频振幅dBFS计算方法
  • 【17. 电话号码的字母组合 中等】
  • 数据结构初阶---排序
  • 【从0-1实现一个前端脚手架】
  • AI文章管理系统(自动生成图文分发到分站)
  • 【Leetcode 每日一题】3270. 求出数字答案
  • 基于单片机的无线气象仪系统设计(论文+源码)
  • 【数据库】Mysql精简回顾复习
  • 深入理解 HTTP 的 GET、POST 方法与 Request 和 Response
  • MySQL 中联合索引相比单索引性能提升在哪?
  • 第34天:安全开发-JavaEE应用反射机制攻击链类对象成员变量方法构造方法
  • C++笔记之数据单位与C语言变量类型和范围
  • 算法-拆分数位后四位数字的最小和
  • Python 管理 GitHub Secrets 和 Workflows
  • 指令的修饰符
  • C# 正则表达式完全指南
  • 【笔记整理】记录参加骁龙AIPC开发者技术沙龙的笔记
  • 论文解析 | 基于语言模型的自主代理调查
  • 面试加分项:Android Framework AMS 全面概述和知识要点