模型评价方法(一)

2020 年 3 月 22 日

模型评价方法(一)

在模型开发完成之后,一个必不可少的步骤是对建立的模型进行评估,评估其是否满足使用的需要。模型评估有着一套相对标准的模型评价指标,现在按照不同的模型类型进行描述。


混淆矩阵


关于二分类模型的评价指标,混淆矩阵(Confusion Matrix)可以解释大部分的概念,如下所示:



  • TP(True Positive): 真实为1,预测也为1,上表中的a

  • FN(False Negative): 真实为1,预测为0,上表中的b

  • FP(False Positive): 真实为0,预测为1,上表中的c

  • TN(True Negative): 真实为0,预测也为0,上表中的d


基于混淆矩阵衍生的模型评价指标有:



准确率(accuracy)衡量的是分类正确的样本占总样本数量的比例。在一定情况下,准确度可以很好的评价模型的效果,但是,在某些情况下,其评价效果可能会有差异。比如在样本比例相差过大时(原样本为 1 的样本占总样本数 99%),将所有的样本均判定为 1 的分类器将取得 99%的 accuracy,将远远好于其它分类器大量训练所得到的结果。故在此基础上,从不同方面出发,有不同的衡量指标。



precision 是预测为 1 的样本里面,真实标签为 1 的样本占比。recall 是实际为 1 的样本里,预测为 1 的概率。在通常情况下,precision 高时 recall 偏低,recall 高时 precision 偏低。以挑选西瓜为例,如果以 precision 作为衡量标准,则尽可能的选取有把握好的西瓜,这样 a 和 c 就会相对较小,b 和 d 相对较大,则 Recall 较低。如果以 recall 为衡量标准,则是希望尽可能的将好瓜选出来,错判相对会较多,故 a 和 c 相对较大,b 和 d 相对较小,故 precision 相对会降低。


在不同的使用场景下,对于 precision 和 recall 各有侧重。以信贷领域为例,在进行信用评级时,我们希望 precision 尽可能的大,才能尽可能的避免资金的损失。在进行信贷营销时,我们希望 recall 尽可能的大,才能营销到足够多的目标群体。


对于一般来说,为了平衡 precision 和 recall,可以采用 F score 作为评价标准



F1 的值同时受 precision 和 recall 的影响,取值范围为 0 到 1 ,越大代表模型效果越好。


ROC 曲线


对于二分类模型来说,输出结果标签(0 还是 1)往往取决于输出的概率以及预定的概率阈值,常见的阈值是 0.5,输出概率大于 0.5 的判定为正样本,小于 0.5 的判定为负样本。如果增大阈值,对应的预测为正的样本数会减少,一般而言,precision 会升高而 recall 降低;如果减小阈值,对应的预测为正的样本数会增加,precision 会降低而 recall 升高。实际上,阈值的选取一定程度上影响了分类器的分类能力。我们希望一个好的分类器,在任何阈值情况下,都能有一个比较好的效果。为了衡量这个不区分阈值的分类器优劣,ROC 曲线表现出很好的区分能力。



上面第一个图两个分布分别为负样本和正样本的概率分布,横坐标为最后模型的打分,中间的竖线表示阈值。可以看到,随着阈值的上升,TN 和 FN 增大,TP 和 FP 减小。第二个图画出了 ROC 曲线,ROC 曲线横轴表示 FPR(False Postive Rate),即,代表分类器中预测的正类中实际负实例占所有负实例的比例,纵轴表示 TPR(True Postive Rate),即代表分类器预测的正类中实际正实例占所有正实例的比例。由定义可见,随着阈值的增高,TPR 和 FPR 均下降,对于 FPR,我们希望其越小越好,对于 TPR,我们希望其越大越好。将一个模型不同阈值情况用线串联起来,得到的曲线就是 ROC 曲线,ROC 曲线越靠近左上角,模型效果越好,曲线下面积记为 AUC,AUC 越大,表示模型整体区分效果越好。


模型评价方法多种多样,在不同的使用场景下各有偏重,在实际业务上,需要根据当前业务发展情况,选择合适的评价方法和模型。


2020 年 3 月 22 日 21:05136

评论

发布
暂无评论
发现更多内容

架构师0期Week11作业2

Nan Jiang

知乎李大海与阿里云贾扬清联合直播,AI大咖眼中的行业前景

InfoQ_967a83c6d0d7

易实战Spring Boot 2 资源汇总 从入门到精通 内含实战github代码 毫无保留分享

John(易筋)

redis Spring Boot 2 RestTemplate thymeleaf HikariCP

Week11

丿淡忘

熔断、限流的一些理解

elfkingw

高可用注意点

dony.zhang

高可用 高可用系统的架构 高可用系统的运维

架构师0期Week11作业1

Nan Jiang

针对目前在线教育存在问题的解决方案

anyRTC开发者

WebRTC 在线教育 直播 安卓

代理,一文入魂

cxuan

Java 后端 代理

上手Elasticsearch

北漂码农有话说

账户经常被盗号怎么办?防盗“黑科技”了解一下

华为云开发者社区

华为云 云安全 主机安全 双因子认证 弱密码

解码微盟半年财报:同比增长59.9%,SaaS商业版图不断扩大

ToB行业头条

SaaS 微盟

力扣1514——概率最大的路径

健健

算法 最短路径

让这家有12万名员工、1.7万种产品的钢铁厂平滑上云的黑科技是什么?

华为云开发者社区

大数据 云服务 华为云 非对称加密 KYON

《精益创业》续

孙苏勇

随笔杂谈 精益创业

安全及高可用策略

Lane

极客大学架构师训练营

作为程序员,推荐5种编程语言!

代码制造者

Python 编程语言 低代码 C语言 零代码

深圳数字货币交易所开发商,币币撮合交易软件开发

13530558032

合约跟单APP开发模式,合约跟单系统源码搭建

13530558032

程序员不得不知的软技能

flyer0126

软技能

Lambda架构已死,去ETL化的IOTA才是未来

易观大数据

java安全编码指南之:基础篇

力软.net/java开发平台

源码解析 | 万字长文详解 Flink 中的 CopyOnWriteStateTable

Apache Flink

flink

USDT承兑商系统开发,USDT支付系统软件搭建

13530558032

架构训练营第十一周感悟

张锐

IDEA插件之Mybatis Log plugin破解!!!

不才陈某

Java idea插件

Grabana:使用 Golang 或 Yaml 生成 Grafana Dashboard

郭旭东

go golang Grafana

一款JAVA快速开发平台,多项目整合,给开发提提速

力软.net/java开发平台

「Java 25周年」 工具软件 平台应用服务

OFD 版式技术解析系列(四):OFD文档解析流程

华宇法律科技

版式文档 OFD

一个用户秘密加密验证功能

elfkingw

架构训练营第十一周作业

张锐

模型评价方法(一)-InfoQ