目录

1、误差分析

2、偏斜类问题

3、查准率和召回率的权衡


1、误差分析

首先当我们在设计一个算法的时候,我们通常会花很多时间在第一步的复杂构想上,然后设计出模型,当我们的算法基本成型的时候才发现问题(难点)的所在,这时,要修改其实就比较麻烦了,需要重新构思、修改模型。

这里我们推荐一种办法,通过设计一个简单粗暴的算法,一个最基础的系统,或许这个最基础的系统与我们所能构建的 “最佳” 系统相去甚远,但研究其中的基础功能也是很有价值的,我们可以用来找到算法的不足之处和难以处理的样本类型。

那么又怎么进行误差分析呢?

如吴恩达所讲授的垃圾邮件分类的例子中,我们找出在交叉验证集中一些分类错误的样本(100个),我们可以手动对这100个样本进行分类,然后找出是什么原因导致的分类错误(采用了拼音?字母变形?间隔符?等等原因,这里假设三种情况),假设这100个样本之中,由于垃圾邮件使用拼音导致分类错误的样本有90个,字母变形导致分类错误的样本有2个,间隔符导致的有8个。那么接下来我们是不是已经知道要重点优化那一部分的代码了。在我们重点优化拼音那一部分代码之后,我们可以发现这个算法的精度有着明显的提升了。

或许有人还会问到,如果我不知道这个参数是否有用(例如是否要将university和universe是否识别为同一个单词),我又应该怎么样去验证呢?我们可以利用交叉验证集,观察将universe和university视为用一个单词的算法精度和不视为同一个单词的精度,观察哪一个分类的精度会更高,则采取哪一种分类方式。

2、偏斜类问题

对于正例和负例的比率处于一个极端的情况(一类样本数比另一类样本数多很多),叫偏斜类问题。

对于偏斜类问题,单一的数值指标,即通过某个实数来评估你的学习算法,就不管用了,因为从准确率99.3%,到准确率99.5% 。看似数值提高了,但是实际效果没有什么帮助。

有另外一种评估度量值,叫查准率和召回率。

①正确肯定(TruePositive,TP):预测为真,实际为真 ;

②正确否定(TrueNegative,TN):预测为假,实际为假;

③错误肯定(FalsePositive,FP):预测为真,实际为假;

④错误否定(FalseNegative,FN):预测为假,实际为真。

对于分类问题,查准率和召回率高,这个算法就表现得好。

偏斜类问题,用查准率和召回率,比用分类误差或分类准确性好的多。

3、查准率和召回率的权衡

①沿用一下癌症预测的例子,当我们希望,我们能够非常准备才通知患者可能患有癌症时,我们可以修改预测模型,当y=1:h>0.7 ,h>0.9才通知患者。这是我们的查询率可以得到一个比较理想的值,但是回召率相对而言却比较低。

②当我们希望宁可误诊让患者虚惊一场,也不能让一个真正的癌症患者(FN)得不到治疗的情况下,我们可以使y=1: h>0.3,h>0.4就通知患者,及时诊断、治疗。这时我们的回召率就会比较高,查准率会比较低。

评估查准率和召回率的方法,计算F值,可以用它衡量算法好坏的标准。

机械学习中的误差分析、偏斜类问题相关推荐

  1. 4.5 偏斜类-机器学习笔记-斯坦福吴恩达教授

    偏斜类(Skewed Classes) 引子 假定我们通过逻辑回归来预测病人是否患有癌症: y={0,病人未患癌症1,病人患有癌症y=\begin{cases}0,\quad病人未患癌症\\1,\qu ...

  2. 我的人工智能之旅——偏斜类问题

    偏斜类问题 正样本数占样本总数的比例极小时,容易出现偏斜类问题. 例如癌症测试.样本集合中仅有0.5%的癌症样本,99.5%的正常样本.通过某一假设函数后,得到1%为癌症患者,99%为正常样本.虽然总 ...

  3. 机器学习之偏斜类误差度量

    机器学习分类模型存在一种情况叫偏斜类.偏斜类简单理解就是在训练模型时由于正样本和负样本之间的严重不平衡,导致模型最后检测全部都是1或者全部都是0.假设正样本的y值为1,当正样本远远多于负样本的时候,训 ...

  4. Java中的包,类的导入,静态导入

    包的作用 1. 为了更好的组织代码,能够将自己的代码与代码库的代码分离. 2. 在需要合作完成的工作中,可以使用分包的方式来尽量的减少类命名的冲突. Sun公司推荐程序员使用公司域名的反向字符作为公司 ...

  5. ArcObjects编程方法(七):.NET中继承ArcGIS COM类

    要符合作为基类的要求,coclass必须满足: 定义为元数据 可创建 聚合 然而在ArcGIS中,ArcGIS COM类不能在.NET环境中作为基类.如果要想方便的创建ArcGIS组件,可以使用ESR ...

  6. 数据库中的字段varchar类型和char类型的区别?

    数据库中的字段varchar类型和char类型的区别? 目录 数据库中的字段varchar类型和char类型的区别?

  7. commons-lang3-3.2.jar中的常用工具类的使用

    这个包中的很多工具类可以简化我们的操作,在这里简单的研究其中的几个工具类的使用. 1.StringUtils工具类 可以判断是否是空串,是否为null,默认值设置等操作: /*** StringUti ...

  8. 关于Cocos2d-x中对其他某个类的某个属性的获得

    类A要获得类B中的某个属性,可以是节点属性 方法一 1.先在B类中定义一个_edge的节点属性(可以在B类中进行各种对_edge的操作),然后写一个方法 Node* GameController::g ...

  9. java编程中的断言工具类(org.springframework.util.Assert)

    转自:https://blog.csdn.net/gokeiryou263/article/details/19612471 断言工具类:Assert类, java.lang.Object ---&g ...

  10. Qt中的自定义模型类

    文章目录 1 Qt中的通用模型类 1.1 Qt中的通用模型类 1.2 Qt中的变体类型QVariant 2 自定义模型类 2.1 自定义模型类设计分析 2.2 自定义模型类数据层.数据表示层.数据组织 ...

最新文章

  1. 科普丨让机器看见世界,这背后的技术是什么?
  2. 样式表(CSS:Cascading Style Sheets)简要教程[上]
  3. Linux中配置bochs
  4. pxe+kickstart实现无人值守网络安装rhel5.4
  5. Nginx 反向代理、动静分离、负载均衡及配置实例
  6. Java代码质量检测评估工具-Findbugs
  7. 【转】如何实现一个文件系统
  8. c语言默认参数_5.1 C++有默认参数的函数
  9. MongoDB的ObjectId生成原理
  10. Pytorch损失函数BCELoss,BCEWithLogitsLoss
  11. PHP 多维数组转换一维数组
  12. 准备系统地学习一下Python
  13. Ubuntu下VLC播放器安装配置以及VLC常用快捷键记录
  14. pyqt5——QImage与QPixmap
  15. SQL数据库日志文件丢失,日志文件恢复的办法
  16. 使用VSCode运行C语言
  17. 第8章 HDFS HA高可用
  18. qiankun加载react子应用报错[import-html-entry] error occurs while executing normal script
  19. 计算机毕业设计SSM餐厅管理系统【附源码数据库】
  20. 70句计算机英语,医务人员常用英语70句

热门文章

  1. python程序员工资待遇-为什么企业很难招聘到好的python程序员?
  2. js遇到的wasm的加密
  3. android 飞行模式 配置 wifi可用,飞行模式下使用WiFi教程
  4. 功率和能量换算公式、如何换算,W和J如何转换,power和energy转换
  5. 【小技巧】利用matlab进行批量文件下载并解压
  6. Django开发Restful Api文档
  7. 互联网时代架构师的职责与思考
  8. 51nod 1459 1212
  9. UCI糖尿病数据利用逻辑回归算法进行训练和预测
  10. 修复关于DxO Nik Collection 2.0.8在Photoshop 2020不能显示中文问题