博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
吴恩达机器学习系列16:机器学习系统设计
阅读量:5798 次
发布时间:2019-06-18

本文共 1170 字,大约阅读时间需要 3 分钟。

偏斜分类的误差评估

举个例子,我们想训练一个模型去诊断患者是否患有癌症。在人群中,患有癌症是一个极小概率发生的事情,比如 1000 个人中患有癌症的只有 5 人。那么在这个样本中,患有癌症的人的概率为 0.5%,正常人的概率为 99.5%,这是一个偏斜类,正结果(设为 1 )占总样本数极小。

如果我们训练的机器学习模型的正确率为 99%,看似这个正确率非常高,模型表现的很好,可是考虑下面这个模型(这都算不上一个模型):令所有的结果全部输出为 0(也就是认为所有人都是没有癌症的),它的正确率会达到 99.5%,比我们用机器学习训练的模型正确率还要高,那么这么模型就是好的吗?肯定不是,这个模型什么事情都没有做!我们被它欺骗了。

为了防止被结果欺骗,我们要用到偏斜分类的误差评估这种方法。其中用到了评估度量值:查准率(precision)召回率(recall)。如下图:

我们将算法预测的结果分为 4 中情况:

1.正确肯定(True Positive:  预测为真,结果为真

2.正确否定(True Negative: 预测为假,结果为假

3.错误肯定(False Positive: 预测为真,结果为假

4.错误否定(False Negative:预测为假,结果为真

查准率和召回率的定义已经在上图中列出来了。可以知道,查准率是在所有我们预测结果为真的情况下,预测成功的概率;召回率是在所有实际结果为真的情况下,我们预测成功的概率。那么回到刚才的问题,查准率是在所有我们预测为癌症的患者中,实际患有癌症的概率;召回率是在全部实际患有癌症的患者中,我们预测成功的概率。对于认为所有人都没有患癌症的算法,召回率为 0,那么这种算法就表现的很差,我们就不会被算法表面的结果所欺骗。

权衡查准率和召回率

回顾逻辑回归算法:

当我们把临界值 0.5 增大,查准率就会增大而召回率就会减小,当我们把临界值 0.5 减小,查准率就会减小而召回率就会增大。

评估一个算法的好坏我们要用到评估度量值,评估度量值是一个实数,能够评估这个算法的好坏,但是现在有两个值,我们就没办法确定究竟怎么选择。这时候首先想到用平均值,但是会发现,Algorithm 3 的平均值最大但是这个算法表现的是最差的,因此取查准率和召回率的平均值这种做法是不可取的。

我们需要要用到 F1 去计算评估度量值。根据 F1 值的定义,当查准率和召回率其中有一个为 0 时,F1 值就为 0,因此 F1 值可以作为评估度量值。

ps. 本篇文章是根据吴恩达机器学习课程整理的学习笔记。如果想要一起学习机器学习,可以关注微信公众号「SuperFeng」,期待与你的相遇。

转载于:https://juejin.im/post/5cadb5f35188251b0d7dfa04

你可能感兴趣的文章
31-hadoop-hbase-mapreduce操作hbase
查看>>
NYOJ283对称排序
查看>>
C#反射实例应用--------获取程序集信息和通过类名创建类实例
查看>>
VC中实现文字竖排的简单方法
查看>>
程序员常用的六大技术博客类
查看>>
深入理解浏览器的缓存机制
查看>>
又拍云沈志华:如何打造一款安全的App
查看>>
dubbo源码分析-架构
查看>>
6套毕业设计PPT模板拯救你的毕业答辩
查看>>
Windows phone 8 学习笔记
查看>>
我的友情链接
查看>>
sshd_config设置参数笔记
查看>>
LeetCode--112--路径总和
查看>>
感悟贴2016-05-13
查看>>
百度编辑器ueditor 光标位置的坐标
查看>>
DEV-C++ 调试方法简明图文教程(转)
查看>>
参加婚礼
查看>>
刚毕业从事java开发需要掌握的技术
查看>>
Java重写equals方法和hashCode方法
查看>>
Spark API编程动手实战-07-join操作深入实战
查看>>