模型评估【PR|ROC|AUC】
这里主要讲的是对分类模型的评估。
1、准确率(Accuracy)
准确率的定义是:【分类正确的样本】 / 【总样本个数】,其中分类正确的样本是不分正负样本的
优点:简单粗暴
缺点:当正负样本分布不均衡的情况(假设一种极端情况,正样本1个,负样本99个),此时即使一个比较差的模型(只会将所用的样本预测成负样本),那它也有99%的准确率。
总结一下就是 当样本分布不均匀,该指标意义不大
改进方案: 1、在不同样本分类下求它的准确率,然后取平均值
2、选取其他评价指标
2、PR曲线
Precision(精准率):【分类正确的正样本个数】/【被预测为正样本的个数】
Recall(召回率):【分类正确的正样本个数】/【真实中正样本的个数】
Precision 与 Recall是一对既矛盾又统一的变量
矛盾是指:如果想要高的 精准率,也就要求模型有一些挑剔,对于一些不太确定的是否为正样本的,不将它预测成正样本,可以理解为模型变得“保守”了,所以【被预测为正样本的个数】变小,【分类正确的正样本个数】变小,但是他们比值是变大的,可以这么理解假设有10个样本不太确定是否是正样本,在挑剔之前,就把这个不确定的全部预测成正样本,假设在这10个中,只有4个分类正确,在挑剔之后,分子-4,分母-10,也就是不确定中可以会预测正确也可能预测错误,而追求高的精准率,就直接将这些不确定的抛弃,而此时【分类正确的正样本个数】是变小的,所以召回率变小。
统一是指:个人感觉精准率和召回率越高都会反映模型效果会比较好
PR曲线:是以Precision为纵坐标,Recall为横坐标的描述一个模型在不同阈值(划分正负样本的标准)下的曲线图
绘制过程:与ROC绘制过程相同
曲线意义:当R接近0,即在原点附近时,模型变得非常保守,十分把握才预测成正样本,也就是阈值变得很大,此时正确的可能性将也很大,即精确率很高,随着R的变大,精确率将变小。
那如何通过PR曲线衡量不同模型的好坏呢?
可以通过曲线下的面积,面积越大,模型越好
缺点:
受样本影响比较大,假设负样本扩大100倍,召回率不变,精准率的分母变大了,一些负样本被预测成正样本,也就是在召回率固定的情况下,精准率变小了。
3、ROC曲线
真阳性 (TPR): TP / P 【分类正确的正样本个数TP】/【真实中正样本的个数P】 等于 召回率
伪阳性(FPR): FP / N 【在负样本中被预测成正样本的个数 FP】 / 【真实中负样本的个数N】
ROC曲线是以真阳性为纵坐标,伪阳性为横坐标描述一个模型在不同阈值(划分正负样本的标准)下的曲线图
绘制过程:
- 对所有样本求预测为正样本的概率,并根据概率从大到小排序
- 分别以每一个概率作为一个划分正负样本的阈值,对于第一个就是将最大概率作为划分阈值,此时正样本个数为0(y轴为0),全部为负样本(横轴也为0),不断改变降低阈值,就会得到在该阈值下的点
- 不同阈值下的点对构成的曲线就是roc曲线
另外还有一个简单的绘制方法:
X轴以 1/N 为单位,Y轴以 1/P为单位,遍历所有的样本,如果当前样本为正的话,向上移动一个单位,样本为负向右移动一个单位,最终的结果就是由左下方不断往右上方移动
每一次的移动其实都是一次改变判断正负样本阈值的过程,对于 X轴和Y轴的分母不会改变,当样本是正,阈值为大于等于该样本概率判断为正样本,所以Y轴 + 1,样本为负,表示该样本会判断成正样本,所以X轴 + 1。
优点:
ROC曲线不会受样本影响,相对稳定。假设负样本扩大100倍,对于X轴,分子分母等概率变化,总体结果是不变的,对于Y轴也是不变的
4、AUC (Area under cover)
AUC是ROC曲线的积分,表示模型分类效果,值越大分类效果越好
模型评估【PR|ROC|AUC】的更多相关文章
- 召回率、AUC、ROC模型评估指标精要
混淆矩阵 精准率/查准率,presicion 预测为正的样本中实际为正的概率 召回率/查全率,recall 实际为正的样本中被预测为正的概率 TPR F1分数,同时考虑查准率和查全率,二者达到平衡,= ...
- 评价指标的局限性、ROC曲线、余弦距离、A/B测试、模型评估的方法、超参数调优、过拟合与欠拟合
1.评价指标的局限性 问题1 准确性的局限性 准确率是分类问题中最简单也是最直观的评价指标,但存在明显的缺陷.比如,当负样本占99%时,分类器把所有样本都预测为负样本也可以获得99%的准确率.所以,当 ...
- 笔记︱风控分类模型种类(决策、排序)比较与模型评估体系(ROC/gini/KS/lift)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 本笔记源于CDA-DSC课程,由常国珍老师主讲 ...
- 风控分类模型种类(决策、排序)比较与模型评估体系(ROC/gini/KS/lift)
python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...
- 【AUC】二分类模型的评价指标ROC Curve
AUC是指:从一堆样本中随机抽一个,抽到正样本的概率比抽到负样本的概率大的可能性! AUC是一个模型评价指标,只能用于二分类模型的评价,对于二分类模型,还有很多其他评价指标,比如logloss,acc ...
- 模型评测之IoU,mAP,ROC,AUC
IOU 在目标检测算法中,交并比Intersection-over-Union,IoU是一个流行的评测方式,是指产生的候选框candidate bound与原标记框ground truth bound ...
- 模型构建<1>:模型评估-分类问题
对模型的评估是指对模型泛化能力的评估,主要通过具体的性能度量指标来完成.在对比不同模型的能力时,使用不同的性能度量指标可能会导致不同的评判结果,因此也就意味着,模型的好坏只是相对的,什么样的模型是较好 ...
- 模型的性能评估(二) 用sklearn进行模型评估
在sklearn当中,可以在三个地方进行模型的评估 1:各个模型的均有提供的score方法来进行评估. 这种方法对于每一种学习器来说都是根据学习器本身的特点定制的,不可改变,这种方法比较简单.这种方法 ...
- 一文让你彻底理解准确率,精准率,召回率,真正率,假正率,ROC/AUC
参考资料:https://zhuanlan.zhihu.com/p/46714763 ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到).其实,理解它并不是非常难 ...
随机推荐
- c/c++ 多线程 等待一次性事件 future概念
多线程 等待一次性事件 future概念 背景:有时候,一个线程只等待另一个线程一次,而且需要它等待的线程的返回值. 案例:滴滴叫车时,点完了叫车按钮后,叫车的后台线程就启动了,去通知周围的出租车.这 ...
- Linux Mysql数据库安全配置
Linux Mysql数据库安全配置 目录: 1.修改mysql管理员账号root的密码(2种方法) 2.修改mysql管理员账号root 3.mysql管理员root账号密码遗忘解决办法(2种方法 ...
- Saltstack_使用指南07_远程执行-执行模块
1. 主机规划 远程执行教程文档 https://docs.saltstack.com/en/latest/topics/tutorials/modules.html 所有模块文档 https://d ...
- easyUI行删除
function removeRow(target,number) { if (number) { var index = getRowIndex(target); $datagrid.datagri ...
- win 10 Hbuilder1.2.1连接Genymotion 调试Android 软件
这里记录一下 Hbuilder1.2.1连接Genymotion 调试Android 软件 的过程: 步骤一:把Genymotion 的 adb.exe 路径配置到 Hbuilder 中 在 菜单栏 ...
- 面向对象_内置函数 property
property 将方法伪装成为属性,可以不用加上()就可以调出其属性. 但是用__dict__,不能调出此属性 from math import pi class Circle: def __ini ...
- django自定义分页器
一 django 的分页器 1 批量创建数据 批量导入数据: Booklist=[] for i in range(100): Booklist.append(Book(title="boo ...
- Android图片选择---MultiImageSelector的使用
Github地址:https://github.com/lovetuzitong/MultiImageSelector MultiImageSelector主要是图片选择功能. AndroidStud ...
- Jenkins pipeline:pipeline 语法详解
jenkins pipeline 总体介绍 pipeline 是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. ...
- Spring Security(三十三):10.3 Password Encoding
Spring Security’s PasswordEncoder interface is used to support the use of passwords which are encode ...