机器学习中的模型评价策略metric(ROC,PR,AUC,F1)_auc metric-程序员宅基地

技术标签: 机器学习  

TP(真阳性 true positives) TN(真阴性 true negatives) FP(假阳性 false positives) FN(假阴性 false negatives)

分布图:

混淆矩阵:

准确率(accuracy):acc =\frac{TP+TN}{TP+TN+FP+FN}

精准率(precision):pre = \frac{TP}{TP+FP}

模型判别出来是阳性,但是不是所有都对,精准率就是检查在这些阳性里的真正为阳性的比率。一句话:检索出的信息中有多少比例是用户感兴趣的(西瓜书)

召回率(recall):re = \frac{TP}{TP+FN}

原来阳性总数,模型只能判别出来一部分,召回率就是检查模型对原来阳性的判别程度。一句话:用户感兴趣的信息中有多少被检索出来了(西瓜书)

PR 曲线:(PR curve):越靠近右上角(top right)的点越好

precision和recall是相互排斥的,只能折中取,所以就有了F值的判别策略

F1值:F1 = \frac{2*precision*recall}{precision+recall}=\frac{2\times TP}{ALL+TP-TN}

F_{\beta }值:F_{\beta }=\frac{(1+\beta ^{2})\times P\times R}{(\beta ^{2}\times P)+R}

\beta>1召回率更有影响,\beta<1精准率更有影响

有时会有多个二分类,例如多次训练/测试、多分类任务。这时需要一个综合的策略

微平均(micro-average):把所有类别的一次性都考虑进来,计算类别预测的准确率。

宏平均(macro-average):每个类别分开考虑,计算单独每个类别的准确率,最后再进行算术平均得到该测试集的准确率。

微平均 recall = precise = f1-score 无论是二分类还是多分类, 因为要统计所有的类别, 所以TP为各个类别分对的数目的总和, FP= FN 为各个类别分错数目的总和,recall = precise = 正确分类 / (正确分类 + 错误分类) 

所以:宏平均会比微平均好一些,因为macro会受minority class影响更大,也就是说更能体现在small class上的performance。

(摘自:微平均 宏平均 微平均(准确率、召回率、f1-score相等) 以及 TP、TN、FP、FN的理解_Lord_sh的博客-程序员宅基地)

多对P.R:(P_{1},R_{1}),(P_{2},R_{2}),(P_{3},R_{3}),``````(P_{n},R_{n})

宏查准率(macro-P):macro-P=\frac{1}{n}\sum_{i=1}^{n}P_{i}

宏查全率(macro-R):macro-R=\frac{1}{n}\sum_{i=1}^{n}R_{i}

宏F1:(macro-F1):macro-F1=\frac{2\times macro-P\times macro-R}{macro-P+macro-R}

微查准率(macro-P):micro-P=\frac{\overline{TP}}{\overline{TP}+\overline{FP}}

微查全率(macro-R):micro-R=\frac{\overline{TP}}{\overline{TP}+\overline{FN}}

微F1:(macro-F1):micro-F1=\frac{2\times micro-P\times micro-R}{micro-P+micro-R}

真正例率(True Positive Rate):TPR=\frac{TP}{TP+FN}

假正例率(False Positive Rate):FPR=\frac{FP}{TN+FP}

ROC曲线(ROC curve):ROC曲线中,离左上角(top left)最近的点为最好的阈值点 

灵敏度(sensitivity):sencitivity = \frac{TP}{TP+FN} = true\, positive\, rate

特异性(specificity):specificity = 1-false\, positive\, rate = 1-\frac{FP}{TN+FP} = \frac{TN}{TN+FP}

AUC(曲线下面积):不考虑其他因素下,AUC越大,模型越好。PR和ROC都适用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44901773/article/details/116173069

智能推荐

RabbitMQ入门 -- 阿里云服务器安装RabbitMQ_阿里云 rabbitmq 安装-程序员宅基地

文章浏览阅读6k次,点赞113次,收藏148次。RabbitMQ是什么,浅谈RabbitMQ!_阿里云 rabbitmq 安装

相机标定(3) opencv中solvePnPRansac()和solvePnP()计算外参数-程序员宅基地

文章浏览阅读2.3w次,点赞15次,收藏112次。SolvePnPbool solvePnP( InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, Out..._solvepnpransac

PTA:矩阵的乘法运算(c++,运算符重载)_线性代数中的矩阵可以表示为一个row*column的二维数组,当row和column均为1时,退化-程序员宅基地

文章浏览阅读4.1k次,点赞6次,收藏24次。线性代数中的矩阵可以表示为一个row*column的二维数组,当row和column均为1时,退化为一个数,当row为1时,为一个行向量,当column为1时,为一个列向量。建立一个整数矩阵类matrix,其私有数据成员如下:int row;int column;int **mat;建立该整数矩阵类matrix构造函数;建立一个 *(乘号)的运算符重载,以便于对两个矩阵直接进行乘法运算;建立输出函数void display(),对整数矩阵按行进行列对齐输出,格式化输出语句如下:cout&l_线性代数中的矩阵可以表示为一个row*column的二维数组,当row和column均为1时,退化

用 nodejs 做反向代理服务器_severhost反代-程序员宅基地

文章浏览阅读3.6w次,点赞5次,收藏18次。时下不少场景,都是申请一个 VPS 主机来托管运行 Web 项目的,小弟我也不例外——购买了一个小型的 CentOS VPS 使用着。在使用的过程中,面临一个问题,就是同一类型的服务端环境还好——但如果是一个 PHP、一个 ASP、 一个 JSP 的三种类型的服务端项目并存着,该怎么分配唯一的 80 端口呢?因为商业 WWW 网站的话,往往只能占用 80 端口,——当然,如果只是做服务的话,如接口服务之类的,使用了其他端口就不会与 80 端口冲突。因此,许多开发者都会面临到 80 端口这个问题,并且实际情_severhost反代

Python模块大全_python 模块-程序员宅基地

文章浏览阅读1.6w次,点赞12次,收藏51次。Python模块_python 模块

windows nexus maven私服搭建-程序员宅基地

文章浏览阅读120次。1.下载nexus相关压缩文件并安装再登录下载地址(1)下载完成后会有一个包含两个文件夹的压缩包。将其一并解压到同一个文件夹之中(2)前往刚刚解压的目录,进入到bin目录,有个nexus.exe的执行文件,但是无法打开,需要使用cmd工具 cmd进入到bin目录后执行: nexus.exe /run(3)等待运行nexus....(让子弹飞30s-60s)(4)打开浏览...

随便推点

嵌入式开发,没有串口如何看日志?_没有串口怎么读数据-程序员宅基地

文章浏览阅读1.7k次。题图:Pixabay本文主要探讨嵌入式开发中消息日志输出的方式,全文1200字,读完大约需要3分钟。首发于微信公众号“洛奇看世界”,欢迎转载。最近客户的一个项目,试产阶段发现有部分盒子没有正常启动。项目出于第三方的安全要求,板子上没有串口,准确说是PCB设计阶段没有给串口布线。以前说没有串口,基本上硬件上都预留了串口位,只是没有贴上串口座子而已,这种情况下焊上座子就好了~但现在没有串口..._没有串口怎么读数据

jira 4.2 的详细安装(含破解) (添加GreenHopper安装及破解) [转帖含部分修改]_jira4.2授权码-程序员宅基地

文章浏览阅读1k次。一、安装1.Linux & MySql & JDK安装步骤省略,我使用的是Debian5 + MySql5 + JDK62.下载JIRA4.2,下载地址:http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa注意:选择4.2 standalone版本3.将下载得到的atlassian-jira-enterprise-4.2-standalone.tar.gz文件解压缩到/usr/local/jira目录下面4.在MySql中专将JIRA数_jira4.2授权码

SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者-程序员宅基地

文章浏览阅读10w+次,点赞407次,收藏2.1k次。本文主要详细介绍SQL server2019的简单使用,以《数据库系统概论(第5版)》的第79页—第80页为例,详细介绍如何使用SQL server2019这款数据库软件,包括启动SQL server服务,建立数据库(学生—课程模式S-T),建立课程表等,内容比较简单,容易理解,适合广大初学者了解SQL server的简单使用。不会涉及到复杂的语法知识,如果有也会详细解释的!(下文标红的字请重点关注一下!)_sql server

CWE-484: Omitted Break Statement in Switch(switch省略break)-程序员宅基地

文章浏览阅读200次。ID: 484 类型:基础 结构:简单 状态:草稿 描述程序省略了switch或类似构造中的break语句,导致执行与多个条件相关联的代码。当程序员只打算执行与一个条件相关联的代码时,这可能会导致问题。扩展描述这可能导致关键代码在不应该执行的情况下执行。相关试图与“研究层面”视图(CWE-1000)相关与“开发层面”..._cwe-484

html如何获取表格行数据,js遍历获取表格内数据的方法(必看)-程序员宅基地

文章浏览阅读4k次。本文将介绍如何使用js获取表格内某一单元格的内容,表格由table,tr,td等html标记组成。table表示表格,tr表示行,td表示行中列。1、一般的表格结构如下idname1fdipzone2wing2、遍历表格中所有内容方法首先需要給table加上id,这样方便定位到哪一个表格,例如获取表格行数/*** 获取表格行数* @param Int id 表格id* @return Int*/f..._html获取表格行数

Power Query连接MySQL数据库_ole db 或 odbc 错误 : [datasource.missingclientlibrar-程序员宅基地

文章浏览阅读3.3k次。问题描述:Power Query连接MySQL数据库,导入数据库的表时报错:无法查找固定名称<名称>的数据库访问接口。解决方法:点击桌面左下角“win”图标,找到“所有程序”,选择“MySQL”文件夹,点击MySQL下载器。选择“yes”选择“close”点击“add”逐级展开,选择至“Connector/NET 6.9.9 X86”,点击按钮,然后按默认操..._ole db 或 odbc 错误 : [datasource.missingclientlibrary] mysql: 无法查找

推荐文章

热门文章

相关标签