专栏首页机器学习入门与实战机器学习 - 模型离线评估

机器学习 - 模型离线评估

机器学习中,训练好模型后如何评估测试模型至关重要。只有选择与问题相匹配的评估方法,才能够快速的发现在模型选择和训练过程中可能出现的问题,迭代地对模型进行优化。

模型上线之前可以利用测试数据集进行离线评估,主要指标可以根据具体的问题类型可以有以下的方案。

分类问题评估

假定一个具体场景作为例子:

假如某个班级有男生80人,女生20人,共计100人.目标是找出所有女生. 现在某人挑选出50个人,其中20人是女生,另外还错误的把30个男生也当作女生挑选出来了.

| 是否被检测到 | 相关(Relevant),正类 | 无关(NonRelevant),负类 | | — | — | — | — | | 被检索到 Retrieved | true positives(TP 正类判定为正类,例子中就是正确的判定”这位是女生”) | false positives(FP 负类判定为正类,”存伪”,例子中就是分明是男生却判断为女生) | | 未被检索到 Not Retrieved | false negatives(FN 正类判定为负类,”去真”,例子中就是,分明是女生,却判断为男生) | true negatives(TN 负类判定为负类,也就是一个男生被判断为男生) |

准确率 Accuracy

对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。上述例子分类正确的人共 (20女+50男) 70人。所以准确率 70/100 = 70%。

精准度 Precision

公式:P = \frac{TP}{TP+FP}。正确被检索的 item(TP) 占所有实际被检索到的 item(TP+FP) 的比例。上述例子中是40%(20女生/(20女生+30误判为女生的男生))

召回率 Recall

公式:R = \frac{TP}{TP+FN}。正确被检索的 item(TP) 占所有应该检索到的 item(TP+FN) 的比例。上述例子中是100%(20女生/(20女生+ 0 误判为男生的女生))

$F_1$ 值

值也会高。

\frac{2}{F_1} = \frac{1}{P} + \frac{1}{R}
F_1 = \frac{2PR}{P+R} = \frac{2TP}{2TP+FP+FN}

混淆矩阵 Confusion Matrix

混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。

上述例子的混淆矩阵结果如下

[[20  0]   # True Positives = 20, False Negatives = 0
 [30  50]]  # False Positives = 30, True Negatives = 50

ROC曲线 Receiver Operating Characteristic

In signal detection theory, a receiver operating characteristic (ROC), or simply ROC curve, is a graphical plot which illustrates the performance of a binary classifier system as its discrimination threshold is varied.

ROC 曲线是评估二值分类器最重要的指标之一,中文名为“受试者工作特征曲线”。逻辑回归里面,我们会设一个阈值,大于这个值的为正类,小于这个值为负类。如果我们减小这个阀值,那么更多的样本会被识别为正类。这会提高正类的识别率,但同时也会使得更多的负类被错误识别为正类。为了形象化这一变化,在此引入 ROC ,ROC 曲线可以用于评价一个分类器好坏。

ROC 关注的两个指标:

true\ positive\ rate:TPR = \frac{TP}{TP+FN}
false\ positive\ rate: FRP = \frac{FP}{TP+TN}

ROC 曲线下的面积 AUC

The AUC value is equivalent to the probability that a randomly chosen positive example is ranked higher than a randomly chosen negative example.

AUC(Area Under Curve)被定义为 ROC 曲线下的面积,显然这个面积的数值不会大于1。随机挑选一个正样本以及一个负样本,分类器判定正样本的值高于负样本的概率就是 AUC 值。

  • AUC=1,完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。
  • 0.5<AUC<1
  • AUC=0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
  • AUC<0.5AUC<0.5

既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反)

参考

本文分享自微信公众号 - 机器学习入门与实战(datanlp)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 随机森林(RF),Bagging思想

    Bagging是bootstrap aggregating。思想就是从总体样本当中随机取一部分样本进行训练,通过多次这样的结果,进行投票获取平均值作为结果输出,...

    大数据技术与机器学习
  • textRNN/textCNN文本分类

    textRNN指的是利用RNN循环神经网络解决文本分类问题,文本分类是自然语言处理的一个基本任务,试图推断出给定文本(句子、文档等)的标签或标签集合。

    大数据技术与机器学习
  • 基于依存句法分析的关键短语抽取算法实战

    由于最近在做一些无监督的关键词短语(实体)抽取工作,其实最大的背景还是没有标注好的实体识别训练数据;所以想到采用无监督的关键短语抽取算法折中去抽取一些实体,于是...

    大数据技术与机器学习
  • 每天 3 分钟,小闫带你学 Python(二十五)

    世界上的知识分为下列几种:知道自己知道的,知道自己不知道的,不知道自己知道的,不知道自己不知道的。只要能被想象到的,终有实现的方法。

    小闫同学啊
  • 【指令篇】键盘附着指令调整软键盘

    现在开始实现这个指令,新建指令之前添加Keyboard插件,一般我们的项目默认已经装上了的,我们只需安装相应的ionic-native子模块:

    IT晴天
  • 攻破黑市之拿下吃鸡DNF等游戏钓鱼站群

    前段时间有个网友给我发了个网址,说找到个专门做钓鱼网站的连接,让我看看,然后就引出了一系列事件。

    FB客服
  • Spring IoC容器:BeanFactory和ApplicationContext谁才是Spring IoC容器?

    在org.springframework.beans和org.springframework.context包是Spring框架的IoC容器的基础。该 Bean...

    码农架构
  • 2020的最后一天,不妨了解下装饰器

    举一个非常常见的需求。假设我们有一个类Network,它有一个异步getList方法

    flytam
  • ​《爱上潘大师》系列-你还记得那年的DataFrame吗

    这就造成有时候这一篇文章的概念会及其依赖上一篇文章,所以呢,花个两三分钟复习一下上一篇,你会更好理解这篇文章。

    小一不二三
  • 掌握这些浏览器开发者技巧,绝对能提升你的level

    不管是前后端开发、还是测试工程师,平时都会用到浏览器开发者工具,比如调试一些web应用,定位前后端请求问题,爬虫的页面分析等。

    吾非同

扫码关注云+社区

领取腾讯云代金券