模型优劣的评价有完整的评价指标,通过这些指标我们可以评判出该模型的性能,同时可以比对不同模型进行择优,下面我们从混淆模型开始,学习通过ROC曲线、AUC以及GAUC来对普通分类模型以及推荐模型的评判。

一、分类任务和混淆矩阵

在分类任务当中,存在四种情况:真正类、真负类、假正类、假负类
通过混淆矩阵我们可以一目了然

真实正 真实负
预测正 TP FP
预测负 FN TN
  • True/False代表预测的正确/错误; Positive/Negative代表预测值为1/0.
  • 真阳率(召回率):,正样本被预测为1的概率,反映真实值当中被召回的概率。比如:真的好瓜当中有多少被预测为好瓜。
  • 假阳率:,负样本被预测为1的概率,同上反映了真的坏瓜当中有多少被预测为坏瓜。

二、ROC曲线

在对样本进行预测时,一般会出现以下的情况。绿色代表真实为正,褐色代表真实为负,每一个样本的预测结果都是一个比例x(0-1之间),我们通常规定当x>0.5时预测为正,x<=0.5时预测为负(这个0.5被称为阈值)。

但实际我们会发现,不同的阈值直接影响了最终的分类结果:

  • threshold=0.35:正样本全预测正确,负样本有两个预测错误
  • threshold=0.50:正样本有一个预测错误,负样本有一个预测错误
  • threshold=0.65:正样本有两个预测错误,负样本全预测正确

我们设想,如果存在一个理想化模型(如下图左侧),通过一个阈值能够直接将所有的正负样本分割开,那么这个模型就是我们认为的好模型。而如果通过某个阈值不能很好的将正负样本分开,那么这个模型就不是好模型(如下图右侧)

思考如何能将两个图像很好的反映到一个指标上呢?即通过一个指标我们能区分出好模型与坏模型,ROC曲线呼之欲出。

我们查看下图,通过阈值的变化,能不同程度的将正样本和负样本分离出来,即我们只要能找到反映阈值变化的指标就能用来反映模型分离的优劣。

接着上方的阈值讨论,阈值的变化能通过TPR和FPR这两个指标反映出来,当阈值设定较小,我们能很好的把正样本分离出来,阈值设定较大,我们能很好的把负样本分离处理出来,那么我们就通过TPR和FPR这两个指标作为纵轴和横轴建立坐标系,这就是ROC曲线(ROC曲线本质是离散的,为观察方便一般进行平滑处理)。

三、AUC

为了方便比较不同模型ROC曲线之间的优劣(有时会存在交叉),我们引入AUC,AUC是ROC曲线与FPR围成的面积占TPR与FPR组成面积的比例,也就是ROC对FPR的积分占总积分的比例,通过这个指标能更清晰的对模型进行对比。

再来仔细理解一下这个积分

ROC对FPR的积分:每个预测为正的样本,能比多少个负样本大
总积分:正样本数∗负样本数

因此这里我们可用通过这种方式重新计算第一节中的AUC

第一节中,原始有五个正样本:

p=0.9的真实正样本,它在所有5个负样本前面,因此记为5

p=0.8的真实正样本,它在所有5个负样本前面,因此记为5

p=0.7的真实正样本,它在所有5个负样本前面,因此记为5

p=0.6的真实正样本,它在4个负样本前面,因此记为4

p=0.4的真实正样本,它在3个负样本前面,因此记为3

交叉区域记为5*5=25

因此最终的AUC记为:

四、GAUC

auc在传统的机器学习二分类中还是很能打的,但是有一种场景,虽然是分类模型,但是却不适用auc,即广告推荐领域。

推荐领域使用的CTR(点击率)来作为最终的商用指标,但是在训练推荐模型时,却不用这个指标,用的是GAUC,为什么呢,

因为推荐模型目前比较成熟的模式是训练分类模型,这个分类模型的任务是预测用户是否会点击给定的商品,因此,推荐系统的核心,仍然是一个二分类问题,但是是更细粒度的二分类。

例如给定一下题目:我们准备训练一个模型用来预测用户A和用户B购买iphone、华为和小米的可能性,我们训练了模型α

对于所有出现的概率值:我们可以计算得到AUC为 (2+2+1) /23 = 0.833,(讲解:比0.5小的负样本有2个,比0.4小的负样本有2个,比0.2小的负样本有一个,正负样本乘积为32)。
但是,如果对每个用户查看AUC,则有:

  • 用户A auc: 1/1*1 = 1
  • 用户B auc:(1+1)/1*2 = 1

明显能更好的反映出单个用户的预测效果

auc反映的是整体样本间的一个排序能力,而在计算广告领域,我们实际要衡量的是不同用户对不同广告之间的排序能力,因此实际应该更关注的是同一个用户对不同广告间的排序能力。

GAUC(group auc)实际是计算每个用户的auc,然后加权平均,最后得到group auc,这样就能减少不同用户间的排序结果不太好比较这一影响。

group auc具体公式如下:

实际处理时权重一般可以设为每个用户view或click的次数,而且会过滤掉单个用户全是正样本或负样本的情况。

模型评价指标之ROC、AUC和GAUC相关推荐

  1. 分类器模型评价指标之ROC曲线

    来源:分类器模型评价指标 An introduction to ROC analysis Spark mllib 自带了许多机器学习算法,它能够用来进行模型的训练和预测.当使用这些算法来构建模型的时候 ...

  2. 机器学习分类模型评价指标之ROC 曲线、 ROC 的 AUC 、 ROI 和 KS

    前文回顾: 机器学习模型评价指标之混淆矩阵 机器学习模型评价指标之Accuracy.Precision.Recall.F-Score.P-R Curve.AUC.AP 和 mAP 图裂的话请参考:ht ...

  3. 机器学习分类模型评价指标详述

    问题建模 机器学习解决问题的通用流程:问题建模--特征工程--模型选择--模型融合 其中问题建模主要包括:设定评估指标,选择样本,交叉验证 解决一个机器学习问题都是从问题建模开始,首先需要收集问题的资 ...

  4. 推荐模型评价指标 AUC

    推荐中常用的模型评价指标有准确率,召回率,F1-score和AUC. 1. 什么是AUC AUC指标是一个[0,1]之间的实数,代表如果随机挑选一个正样本和一个负样本,分类算法将这个正样本排在负样本前 ...

  5. 回归和分类模型性能评估指标MSE,MAE,PR,ROC,AUC

    文章目录 0. 模型评估是什么,为什么 1. 不同类型问题的评估指标 1.1 回归问题 1.2 分类问题 1.2.1 准确率和错误率 1.2.2 精确率和召回率 1.2.3 PR曲线图 1.2.4 F ...

  6. ROC曲线和AUC评价指标:为什么AUC可以表示正例预测值大于负例预测值的概率?

    一.ROC曲线 ROC全称为接收者操作特性曲线(Receiver Operating Characteristics Curve,ROC Curve),在机器学习领域,它是指在不同阈值的情况下,将得到 ...

  7. 机器学习分类器评价指标详解(Precision, Recall, PR, ROC, AUC等)(一)

    为了系统性地理解机器学习模型的不同评价指标及其之间的关系,我们将从其定义出发,探究其物理含义及彼此之间的联系,并从数学上给出相应的公式推导,以方便后续用到时复习理解.由于篇幅较长,因此将其分为两篇,这 ...

  8. 分类器评价指标 ROC,AUC,precision,recall,F-score,多分类评价指标

    目录 一.定义 二.ROC曲线 三.如何画ROC曲线 详解ROC/AUC计算过程(roc计算非常详细) 四.AUC AUC值的计算 AUC的计算方法(两个公式并且都举了例子) 为什么使用ROC曲线 五 ...

  9. 【评价指标】如何计算模型评估中的AUC和AUPR值

      计算模型的auc.aupr值一般用sklearn的包进行计算,下面是计算auc的详细过程.y_true是数据的真实标签,y_score是模型的预测得分.   对于计算的auc值,这里详细解释一下什 ...

最新文章

  1. VIM 使用技巧(常用提取)
  2. linux / 终端常用快捷键
  3. 内存颗粒和闪存颗粒的区别_浅谈闪存颗粒二三事
  4. bootstrap带有下拉按钮的输入框_关于bootstrap--表单(下拉select、输入框input、文本域textare复选框checkbox和单选按钮radio)...
  5. 关于为什么说OLTP必须要求变量绑定而OLAP不应该绑定变量的原因
  6. paip. everything exe 文件不能启动的解决
  7. qt 启动时黑屏闪一下_每次启动车辆时最好查看一下这些地方,车辆事故率能下降三分之二_搜狐汽车...
  8. 仙人掌之歌——权力的游戏(1)
  9. java代码对比工具_代码比较工具(Diffuse)
  10. 生活随记-谋定而后动
  11. 衡水十四中2021高考成绩查询,心之所向,行必能至|衡水市第十四中学召开2021高考倒计时200天动...
  12. Linux用户和权限管理看了你就会用啦
  13. 制造工厂中的计件工资管理
  14. python安装后使用pip报错解决方法
  15. 基于Python的作业自动批改系统
  16. No valid crumb was included in the request 问题定位与解决
  17. 不同安卓模拟器连接appium的端口
  18. 搭载专业游戏芯片,这款百元真无线耳机很强吗?开箱实测一番
  19. 对给定的10个国家名,按其字母的顺序输出。C++
  20. html中打印部分内容,设置网页打印区域

热门文章

  1. 【修真院java小课堂】ArrayList浅析
  2. java 微博客户端_[置顶] java新浪微博客户端
  3. 最大似然估计(Maximum likelihood estimation)
  4. 游戏配音中常见的节奏类型
  5. 关于a21A11+a22A12+a23A13=0的证明
  6. 手机浏览器缓存的.ts视频文件如何合成(不下载软件)
  7. hive join 时的bug,使用left join 可以规避
  8. android在线播放儿歌源码,亲宝儿歌播放器手机版
  9. 电力职称计算机多选,计算机基础职称计算机考试试题-多选题.doc
  10. 魅族手机能用鸿蒙系统吗,小米、OV傻眼 魅族要用鸿蒙系统!