Error analysis--让我们系统的去判断我们接下来要做什么,而不是随机的,凭直觉地选择一个去做

我们在设计机器学习应用时,刚开始使用简单(简单的features)的算法来很快的完成它,它可能并不完美,不能很好的解决我们的问题。然后在交叉验证集上来检验这个算法。

然后通过画出学习曲线(判断是high bias还是high variance问题)来决定下一步怎么做(是增加更多的数据,还是增加features),这样做可以避免过早优化,因为我们不可能事先知道怎么去优化我们的算法,我们需要证据来显示我们该如何优化,该接下来做什么。

我们也可以通过误差分析来进行,在交叉验证集上检查那些被误分的邮件有没有系统化的规律,从中得出启发,我们应该增加哪些features来提高算法的性能。

例子:

如假设我们有500个examples在交叉验证集里面,算法将100封邮件误分了,我们手动检查这100封邮件,确定这些邮件的类型(卖药的,推销假品,钓鱼邮件或者其它的),通过算出每种类别中不同的邮件数,你会发现算法在区分钓鱼邮件时表现很差,这说明你应该花更多的时间来研究怎么区分这种类型的邮件,然后看是否能构建出更合适的features来区分这种类型的邮件。

同时也看看哪些features可帮助算法更好的分类。假设我们有右边三种方法来帮助我们。然后手动的检查被误分的邮件,看每种方法分别有多少封邮件。误拼写只有5封,说明我们没有必要去花大力气去编写算法来检测这种错误;如果我们发现大量的邮件都有不一般的标点符号规律,这是一个很强的特征,说明你应该花费时间去构造基于标点符号的更复杂的features。

误差分析是一种手动检查的过程,检查算法所犯的错误来帮助你找到更有效的方法去提高算法。因为大多数的机器学习的算法是类似的,先实行一种快速但是不完美的算法,然后通过分析错误来告诉我们应该集中在哪儿来提高算法的性能。

另一个小窍门是保证有一个可以在数值上进行分析(一种用数字说话的方法)的方法来评估我的算法。

如我们要否要将discount/discounts/....这些看作同一个词,在自然语言处理中,这种方法是通过一种叫做“词干提取”的软件来实现的(Porter Stemmer波特词干提取法),这个软件会将discount discounts看做一个单词。但是这种词干提取软件只会检查开头的几个字母,可能会造成一个问题(如universe与university被视为同一个单词)。所以在你决定是否要使用词干提取软件来进行分类时,是很难决定的。

特别的是当我们用Error analysis也很难决定是否要使用词干提取软件时,最好的办法是快速来实现一下词干提取是否有效。

通过交叉验证错误率来评估词干提取是否有用。

是否要区分大小写?-----通过验证,如不区分则错误率为3.2%,然后来决定是否要区分。

在交叉验证集上进行误差分析

总结

  1. 首先实现一个快速简单不完美的算法
  2. 通过学习曲线(是bias还是variance),误差分析(应集中在哪一块)来看它犯了些什么错误来决定优化的方式
  3. 数值分析能通过量化来帮助你快速地发现你尝试的这些想法是否能提高算法的表现

Machine learning system design---Error analysis的更多相关文章

  1. 斯坦福大学公开课机器学习: machine learning system design | error analysis(误差分析:检验算法是否有高偏差和高方差)

    误差分析可以更系统地做出决定.如果你准备研究机器学习的东西或者构造机器学习应用程序,最好的实践方法不是建立一个非常复杂的系统.拥有多么复杂的变量,而是构建一个简单的算法.这样你可以很快地实现它.研究机 ...

  2. 斯坦福大学公开课机器学习:machine learning system design | error metrics for skewed classes(偏斜类问题的定义以及针对偏斜类问题的评估度量值:查准率(precision)和召回率(recall))

    上篇文章提到了误差分析以及设定误差度量值的重要性.那就是设定某个实数来评估学习算法并衡量它的表现.有了算法的评估和误差度量值,有一件重要的事情要注意,就是使用一个合适的误差度量值,有时会对学习算法造成 ...

  3. Stanford机器学习笔记-7. Machine Learning System Design

    7 Machine Learning System Design Content 7 Machine Learning System Design 7.1 Prioritizing What to W ...

  4. Machine Learning - 第6周(Advice for Applying Machine Learning、Machine Learning System Design)

    In Week 6, you will be learning about systematically improving your learning algorithm. The videos f ...

  5. Machine Learning - XI. Machine Learning System Design机器学习系统的设计(Week 6)

    http://blog.csdn.net/pipisorry/article/details/44119187 机器学习Machine Learning - Andrew NG courses学习笔记 ...

  6. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 11—Machine Learning System Design 机器学习系统设计

    Lecture 11—Machine Learning System Design 11.1 垃圾邮件分类 本章中用一个实际例子: 垃圾邮件Spam的分类 来描述机器学习系统设计方法.首先来看两封邮件 ...

  7. (原创)Stanford Machine Learning (by Andrew NG) --- (week 6) Advice for Applying Machine Learning & Machine Learning System Design

    (1) Advice for applying machine learning Deciding what to try next 现在我们已学习了线性回归.逻辑回归.神经网络等机器学习算法,接下来 ...

  8. Coursera 机器学习 第6章(下) Machine Learning System Design 学习笔记

    Machine Learning System Design下面会讨论机器学习系统的设计.分析在设计复杂机器学习系统时将会遇到的主要问题,给出如何巧妙构造一个复杂的机器学习系统的建议.6.4 Buil ...

  9. 斯坦福第十一课:机器学习系统的设计(Machine Learning System Design)

    11.1  首先要做什么 11.2  误差分析 11.3  类偏斜的误差度量 11.4  查全率和查准率之间的权衡 11.5  机器学习的数据 11.1  首先要做什么 在接下来的视频中,我将谈到机器 ...

  10. Ng第十一课:机器学习系统的设计(Machine Learning System Design)

    11.1  首先要做什么 11.2  误差分析 11.3  类偏斜的误差度量 11.4  查全率和查准率之间的权衡 11.5  机器学习的数据 11.1  首先要做什么 在接下来的视频将谈到机器学习系 ...

随机推荐

  1. POJ 2106 Boolean Expressions

    总时间限制: 1000ms  内存限制: 65536kB 描述 The objective of the program you are going to produce is to evaluate ...

  2. POJ8469 特殊密码锁

    总时间限制: 1000ms 内存限制: 1024kB 描述 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态. 然而让人头疼的是,当你按一 ...

  3. Echartjs axis.getAxesOnZeroOf is not a function

    该问题已经解决,下面是解决思路! 问题描述: axis.getAxesOnZeroOf is not a function 使用echart 出现报这句错误,请求解决方案! 问题原因: 我给坐标设置了 ...

  4. Java开发笔记(一百零七)URL地址的组成格式

    URL的全称是Uniform Resource Locator,意思是统一资源定位符,俗称网络地址或网址.网络上的每个文件及接口,都有对应的URL网址,它规定了其他设备如何通过一系列的路径找到自己,犹 ...

  5. Fedora30 - Xrdp 远程桌面

    Windows RDP 访问 Fedor 远程桌面需要使用 Xrdp 开源工具. [lipandeng@localhost ~]$ sudo dnf install xrdp [lipandeng@l ...

  6. 谈nginx配置

    近日看<许式伟的架构课>中一段关于系统分解的描述所有思考,略记于此. 原文片段如下: 系统设计,简单来说就是 "对系统进行分解" 的能力.这个阶段核心要干的事情,就是明 ...

  7. 《Docker Deep Dive》Note - 纵观 Docker

    <Docker Deep Dive>Note 由于GFW的隔离,国内拉取镜像会报TLS handshake timeout的错误:需要配置 registry-mirrors 为国内源解决这 ...

  8. 协议——SPI

    SPI(Serial Peripheral interface)是由摩托罗拉公司定义的一种串行外围设备接口,是一种高速.全双工.同步的通信总线,只需要四根信号线即可,节约引脚,同时有利于PCB的布局. ...

  9. Shiro集成SSM基于动态URL权限管理(二)

    这个案例基于上一个demo扩展而来.所以数据库表,在Shiro集成SSM基于URL权限管理(一)开篇的一致.如果上个demo操作的建议重新导入一次,避免出现问题. 而这次都不是通过固定写在方法上的注解 ...

  10. quartz2.3.0(十五)执行、暂停、继续执行、清除,花式操作数据库中持久化的job任务

    #################################################################################################### ...