第六周.学习曲线、机器学习系统的设计

Learning Curve and Machine Learning System Design

关键词

学习曲线、偏差方差诊断法、误差分析、机器学习系统的数值评估、大数据原理

概要

本周内容分为两讲:

第一讲.Advice for applying machine learning,主要内容是关于偏差、方差以及学习曲线为代表的诊断法,为改善机器学习算法的决策提供依据;

第二讲.Machine learning system design,主要内容是机器学习算法的数值评估标准:准确率(交叉验证集误差)、查准率precision、召回率recall以及F值,给出了机器学习系统的设计流程.

==============================第一讲==============================

=========                关于偏差、方差以及学习曲线为代表的诊断法         ==========

(一)模型选择Model selection

在评估假设函数时,我们习惯将整个样本按照6:2:2的比例分割:60%训练集training set、20%交叉验证集cross validation set、20%测试集test set,分别用于拟合假设函数、模型选择和预测。

三个集合对应的误差如下图所示(注意没有不使用正则化项):

基于以上划分,我们有模型选择的三个步骤:

step1.用测试集training set对多个模型(比如直线、二次曲线、三次曲线)进行训练;

step2.用交叉验证集cross validation set验证step1得到的多个假设函数,选择交叉验证集误差最小的模型;

step3.用测试集test set对step2选择的最优模型进行预测;

以线性回归为例,假设你利用线性回归模型最小化代价函数J(θ)求解得到一个假设函数h(x),如何判断假设函数对样本的拟合结果是好是坏,是不是说所有点都经过(代价函数J最小)一定是最理想的?

或者这样说,给你下图的样本点,你是选择直线、二次曲线、还是三次曲线......作为假设函数去拟合呢?

以下图为例,你的模型选取其实直接关系到最终的拟合结果

=======================================

欠拟合Underfit          ||  高偏差High bias

正常拟合Just right    ||  偏差和方差均较小

过拟合Overfit              ||   高方差High variance

=======================================

★★★以上问题只是模型选择过程中需要考虑的一点------多项式次数d,实际上,我们还会去考虑这样两个参数:正则化参数λ、样本量m.

下面我将从多项式次数d、正则化参数λ、样本量m这三个量与拟合结果之间的关系做一个简单的概括.

(二)偏差、方差、学习曲线Bias、Variance、Learning curve

1.特征量的度d

还是之前的例子,用二次曲线拟合,训练集和交叉验证集的误差可能都很小;但是你用一条直线去拟合,不管使用多高级的算法去减小代价函数,偏差仍然是很大的,这时候我们就说:多项式次数d过小,导致高偏差、欠拟合;类似的当用10次曲线去拟合,样本点都能经过,对应的代价函数(误差)为0,但是带入交叉验证集你会发现拟合很差,这时候我们说:多项式次数d过大,导致高方差、过拟合。

所以,多项式次数d与训练集、交叉验证集误差的关系如下图:

2.正则化参数λ

正则化参数我们在第三周有介绍到,正则化参数λ越大,对θ惩罚的越厉害,θ->0,假设函数是一条水平线,欠拟合、高偏差;正则化参数越小,相当于正则化的作用越弱,过拟合、高方差。关系如下图所示:

3.样本量m与学习曲线Learning curve

学习曲线是样本量与训练集、交叉验证集误差之间的关系,分为高偏差和高方差两种情况(欠拟合和过拟合)。

①高偏差(欠拟合):

根据下图右部分分析有,通过增加样本量两者误差都很大,即m的增加对于算法的改进无益。

②高方差(过拟合):

根据下图右部分分析有,通过增加样本量训练集样本拟合程度很好(过拟合),训练集误差很小,即m的增加对于算法的改进有一些帮助。

★★★(三)如何决策

综上所述,你会发现有这样的一个结论,就是:

◆训练集误差大、交叉验证集误差也大:欠拟合、高偏差、多项式次数d太小、λ太大;

◆训练集误差小、交叉验证集误差却很大:过拟合、高方差、多项式次数d太大、λ太下、样本量太少。

这就为我们改善机器学习算法提供了依据。

==============================第二讲==============================

=======                                     机器学习系统的设计                                         ======

(一)机器学习系统的设计流程

Step1.使用快速但不完美的算法实现;

Step2.画出学习曲线,分析偏差、方差,判断是否需要更多的数据、增加特征量....;

Step3.误差分析:人工检测错误、发现系统短处,来增加特征量以改进系统。

以垃圾邮件的分类为例:起初你可能找不到太多特征量,除了$、buy、discount等关键词,这时候你应该先快速实现它,然后用交叉验证集去检验,人工去检查出错的邮件的共同特征(比如你发现http超链接比较多等一开始你没想到的特征量);最后你就可以把这些特征量加进你的模型中去重新实验去优化。

(二)数值评估机器学习算法的标准

1.交叉验证集误差(accuracy)

这个很好想到,设计的拟合函数如果用交叉验证集检验误差很大,那么肯定不是一个很好的学习算法;

但,是不是说误差很低就一定是好的学习算法呢?举个例子,这个例子也叫斜偏类

某种癌症的患病率是0.50%,你设计的一个学习算法(综合考虑各种特征量最小化代价函数)得到交叉验证集准确率99.0%,但实际上有这样的一种预测---直接认为样本不发病(不管样本有怎样的特征量),它的交叉验证集准确率却有99.5%,这种预测是不是好的?显然并不是我们的目的。

所以评估学习算法优劣还有下面一个标准:尽可能高的查准率和召回率。

2.查准率、召回率与F值precision、recall、F score

查准率:你预测样本发病样本最后真发病的概率;

召回率:一个最终患病的样本,你之前也预测他患病的概率;

高的查准率意味着,我们在极为确定样本患病的情况下才告诉他患病(或者理解为不轻易预测他患病);

高的召回率意味着,样本有可能患病我们就告诉他(或者理解为普世关怀);

表达式如下图所示:

还是拿之前癌症的例子,你始终预测不患病y=0,召回率就为0,我们希望得到的学习算法是不仅有高的预测准确率,还要有尽可能高的查准率和召回率,所以这种简单的预测y=0的方法并不好。

查准率和召回率有时候不可兼得,所以需要权衡二者,基于二者的判断标准---F值。

F值给出了一个很好判断查准率和召回率的数值计算标准(评估度量值),计算公式见下图:

(三)大数据原理Large data rationale

大量数据往往能大幅度提高学习算法的最终性能,而不在于你是否使用更高级的求解算法等,所以有这样的一句话:

"It's not who has the best algorithm that wins.It's who has the most data."

当然要基于两点前提假设:

1.假设样本的特征能够提供充足的信息进行预测;

你不可能指望只知道房子的面积来预测房价,不管你是不是房地产方面的专家;

2.假设样本能提供尽可能多的特征量;

特征量越多,越不容易出现欠拟合、高偏差的问题;

所以也有这样的结论成立:

1.数据量越大,高方差、过拟合问题越不可能发生;

2.特征量越多,高偏差、欠拟合问题越不可能发生;

================================结语==============================

本周主要讲述了关于偏差、方差以及学习曲线为代表的诊断法和机器学习算法的数值评估标准:准确率、查准率、召回率以及F值,重点是如何根据训练集和交叉验证集误差的大小对系统的改进,或者说如何对机器学习系统做一个评估和改良。这一章的内容以经验性的内容为多,希望对后来的学习者能起到些许帮助。

Stanford机器学习---第六周.学习曲线、机器学习系统的设计相关推荐

  1. python第六周实验_机器学习 | 吴恩达机器学习第六周编程作业(Python版)

    实验指导书    下载密码:ovyt 本篇博客主要讲解,吴恩达机器学习第六周的编程作业,作业内容主要是实现一个正则化的线性回归算法,涉及本周讲的模型选择问题,绘制学习曲线判断高偏差/高方差问题.原始实 ...

  2. 机器学习 | 吴恩达机器学习第六周编程作业(Python版)

    实验指导书    下载密码:ovyt 本篇博客主要讲解,吴恩达机器学习第六周的编程作业,作业内容主要是实现一个正则化的线性回归算法,涉及本周讲的模型选择问题,绘制学习曲线判断高偏差/高方差问题.原始实 ...

  3. Coursera机器学习-第六周-Advice for Applying Machine Learning

    Evaluating a Learning Algorithm Desciding What to Try Next 先来看一个有正则的线性回归例子: 当在预测时,有很大的误差,该如何处理? 1.得到 ...

  4. 吴恩达机器学习-第六周

    本周主要内容 1.模型选择和交叉验证集 2.诊断偏差和方差 3.学习曲线 4.机器学习系统的设计 1.模型选择和交叉验证集 数据分为:训练集,交叉验证集,测试集 使用训练集练出多个模型 对多个模型分别 ...

  5. 第六周 Java语法总结_设计原则_工厂模式_单例模式_代理模式(静态代理_动态代理)_递归_IO流_网络编程(UDP_TCP)_反射_数据库

    文章目录 20.设计原则 1.工厂模式 2.单例模式 1)饿汉式 2)懒汉式 3.Runtime类 4.代理模式 1)静态代理 2)动态代理 动态代理模板 21.递归 22.IO流 1.File 2. ...

  6. 机器学习笔记 (第一周)

    机器学习笔记 (第一周) 目录 机器学习笔记 (第一周) 引言(Introduction) 1.1 什么是机器学习,机器学习能做些什么事情 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学 ...

  7. C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。

    例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...

  8. C语言编程>第六周 ⑥ 输入一串字符,统计大大写字母的个数,并强调统计必须用函数。

    例题:输入一串字符,统计大大写字母的个数,并强调统计必须用函数. 代码如下: #include <stdio.h> #include <string.h>//字符头文件 int ...

  9. C语言编程>第六周 ④ 聚会时规定:男生,超过18岁可以喝酒,没有超过18岁时,喝饮料;女生,超过20岁时,可以喝酒,没有超过20岁时,喝饮料;请输入学生性别和学生的年龄,并根据输入的情况……

    例题:聚会时规定:男生,超过18岁可以喝酒,没有超过18岁时,喝饮料:女生,超过20岁时,可以喝酒,没有超过20岁时,喝饮料:请输入学生性别和学生的年龄,并根据输入的情况来判断喝什么! 代码如下: # ...

最新文章

  1. 自动生成纯文本表格的工具
  2. 超越YOLOv5,1.3M超轻量,高效易用,这个目标检测开源项目太香了!
  3. css 识别变量中的换行符_跟我一起全面了解一下CSS变量
  4. HDU2020 绝对值排序
  5. QMetaObject::connectSlotsByName: No matching signal for问题的解决方法
  6. hive -e ,hive -f 用法
  7. idea可以使用flash框架吗_可以使用 C# 的 Web 前端框架 Blazor
  8. 计算机专业考试知识点,2016计算机专业知识:精选知识点练习(126)
  9. Notepad++配置Python运行环境
  10. leetcode python3 简单题141. Linked List Cycle
  11. 双联通分量求简单环(Educational Codeforces Round 42: F. Simple Cycles Edges)
  12. jQuery Mobile组件
  13. 严加监管是否能解决超载问题
  14. json数据格式转换成csv数据格式,并保存
  15. 基于javaEE的网上商城购物系统
  16. STM32中使用MMA7660重力加速度传感器
  17. qqpcmgr_docpro 这个隐藏文件无法删除的问题解决方法
  18. JT/T 808-2013 道路运输车辆卫星定位系统北斗兼容车载终端通讯协议技术规范
  19. 开封文化艺术职业学院计算机甲骨文,甲骨文软件学院致19级全体同学的一封信 暨2021年寒假作业安排...
  20. docker 应用系列(一)--- 一步步搭建虚拟机 docker 环境 附有 vue-cli + nginx 应用...

热门文章

  1. 开源项目哪家强?Github年终各大排行榜超级盘点
  2. 什么样的爱情是好的爱情?
  3. 政府频频施压,58同城依旧我行我素,虚假信息顽疾无解?
  4. Win32汇编:各种语句的构造方式
  5. 中高级前端工程师都需要熟悉的技能--前端缓存
  6. (附源码)ssm户外用品商城 毕业设计 112346
  7. 嵌入式软件工程师必备技能
  8. 基于canvas制作绚丽的倒计时效果
  9. 思维篇| 为什么数据分析思维比较重要?
  10. 支路电流法、回路电流法和节点电压法整理归纳