• 概要
  • 奥卡姆剃刀
  • 抽样偏差
  • 数据偷看
  • 三的力量

欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen

概要

上节讲到了交叉验证,采用这种方法模拟做测试的过程,从而调整超参数。本节要讲到做机器学习的三个锦郎妙计。

奥卡姆剃刀

An explanation of the data should be made as simple as
possible, but no simpler.—Albert Einstein
对数据的解释应该尽可能的简单,但不要太简单。这对应着奥卡姆剃刀。要剔除掉不必要的数据解释。
在机器学习中,表示的是:The simplest model that fits the data is also the most plausible.

对数据拟合的最简单的解释也是最合理的解释

如下图所示:

在做模型选择的时候,肯定是选择左边的模型,而不是右边的。
简单的模型对应着什么呢?对应着简单的参数,而不是复杂的参数。假设空间相对更小。

为什么简单说好的呢?如果使用简单的模型;
1)假设空间更小
2)如果资料是没用规律的,那么简单的模型无法进行拟合
3)如果简单的模型能够拟合资料,那么说明资料是有显著差异的。

所以在做机器学习的时候一般从简单模型入手,比如线性的分类器等。

抽样偏差

在1948年美国总统大选,报社抽样进行了民调,通过电话。
得到的结果是:Dewey Defeats Truman
杜威击败了杜鲁门
最后的结果却是是杜鲁门胜出,就是杜鲁门总统。

为什么呢?因为报社是通过电话进行民调,那个时候都是上层的人,但是这个样本和整个人民的样本分布式不一样的。

训练集和测试集要来自同样的数据分布

If the data is sampled in a biased way, learning will produce a similarly biased outcome.

举一个例子:https://www.netflixprize.com/
这是Netflix在2009年举办的一个推荐系统的比赛,如果能够比它自己的系统提升10%,就能得到100W美金。
这个系统是采用前面一段时间的数据进行训练,后面一段时间的数据进行测试。如果在整个模型训练过程中,进行随机抽样,那这样抽样数据和测试数据就不是同一个分布啦。模型就会偏差的比较厉害。

所以我们要保证我们的验证环境和测试环境尽可能的接近

数据偷看

不要偷看资料
If a data set has affected any step in the learning process, its ability to assess the outcome has been compromised.
你在使用数据任何过程都是间接的窥探了数据,所以你在下决策的时候,你要知道,这些数据可能已经被你头脑中的模型复杂度所污染。

举一个例子:有八年的股市数据,6年作为训练,2年作为测试。在实际数据中,比如股价波动范围大,需要做一个归一化操作。有两种方法:
1)将这八年的数据全部拿来做归一化,然后分开测试集和训练集
2)将6年的训练集合做归一化,保存归一化的参数,然后做测试的时候,将6年的归一化参数运用到后面测试的两年。
这两种操作带来的结果是不尽相同的,如下图:

if you torture the data long enough, it will confess
这里再插播两句:在做kaggle竞赛或者其他的比赛的时候,通常我们会将训练集和测试集一起来进行特征工程,然后进行分开。因为我们只是要去预测测试集合的数据,这样模型会表现更好。但是实际工作中是不应该这样的,应该是一拿到数据就应该将测试集和训练集分开。

一般来说完全不偷看资料,很难,可能算法表现也不会太好。要避免数据偷看带来的代价,通常有两种做法:
1)非常诚实,数据拿到就将测试资料放在一边,直到需要进行测试的时候。
2)折中方法,做交叉验证,但是资料要小心翼翼的做模型选择。
3)尽量避免使用资料来决定模型,比如做语音模型,一开始就应该将专业知识加入到模型中,而不是看了这些语音数据之后再加入专业知识。这样可能带来在未来的语音数据中,这些专业知识表现不好。
4)保持怀疑,无论是看论文还是自己做实验。

三的力量

机器学习上部分总结,首先是三个领域:

然后是三个理论保证:

然后是三个模型:

然后是模型优化的三个有用的工具:

最后是机器学习的三个原则:
1)奥卡姆的剃刀,越简单的模型越好,但是不要太简单。
2)抽样偏差,保证测试环境和验证环境一致
3)不要数据偷看

后面的课程将会介绍更多的模型:

欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen

林轩田之机器学习课程笔记( how can machines learn better之three learning principles)(32之16)相关推荐

  1. 林轩田之机器学习课程笔记(when can machines learn之learning problem)(32之1)

    前言 课程简介 什么是机器学习 为什么要用机器学习 机器学习的应用 机器学习的构成 机器学习和其他领域的关系 欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen 前言 ...

  2. 林轩田之机器学习课程笔记( embedding numerous feature之support vector regression)(32之22)

    概要 带核函数的岭回归 支持向量回归原问题 支持向量回归的对偶问题 核函数模型总结 欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen 题目可能不全,因为有字数限制,不 ...

  3. 【本站原创】台大林轩田《机器学习基石》系列课程教材的习题解答和实现

    台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...

  4. 台大林轩田《机器学习基石》系列课程教材的习题更新完毕了

    台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...

  5. 首发:台大林轩田《机器学习基石》系列课程教材的习题解答和实现

    台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...

  6. 林轩田《机器学习基石》资源汇总(视频+学习笔记+书)

    来源 | AI有道(公众号ID:redstonewill) ▌课程介绍 台湾大学林轩田老师的<机器学习基石>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和 ...

  7. 台湾大学林轩田教授机器学习基石课程理解及python实现----PLA

    最近在班主任的带领下,开始观看台湾大学林轩田教授的机器学习基石课程,虽然吧,台湾人,汉语说得蛮6,但是还是听着怪怪的,不过内容非常值得刚刚入门的机器学习 小白学习,话不多说,直接进入正题. 1.基本介 ...

  8. 假期福利 | 林轩田《机器学习基石》资源汇总

    AI有道 不可错过的AI技术公众号 关注 课程介绍 台湾大学林轩田老师的<机器学习基石>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.而 ...

  9. 台大林轩田《机器学习基石》习题解答和代码实现 | 【你值得拥有】

    台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...

最新文章

  1. aws lambda使用_使用AWS Lambda安排Slack消息
  2. 用Leangoo敏捷看板工具管理 产品线路图
  3. HDU 3549 Flow Problem (dinic模版 isap模版)
  4. HDU1166 敌兵布阵(树状数组模板题)
  5. Acwing第 37 场周赛【完结】
  6. nginx虚拟主机解析php文件,window停nginx虚拟主机不能解析php
  7. mongodb按照时间分组统计
  8. Debian7.2上一键安装Jetty
  9. windows和linux删除文件方法
  10. java学习(162):同步对象锁
  11. 《learn objective-c on the Mac for OS X and IOS》译名《objective-C基础教程》
  12. centos安装Gitlab Runner
  13. 格雷码与二进制的转换
  14. 输入罗马数字1到12输出阿拉伯数字C语言,用C语言古罗马数字转化阿拉伯数字
  15. 5c5cSs,暗光提升明显 iPhone 5s/5c/5样张对比
  16. 程序员你可以考虑安装的15款谷歌插件
  17. 工业设计公司:从外观设计到软硬件设计
  18. 以下是一段歌词,请从这段歌词中统计出朋友出现的次数
  19. 树莓派IMX708摄像头模块
  20. Chrome 安装插件与使用技巧

热门文章

  1. 【“工业大数据预测”系列】——第2篇:异常数据处理
  2. enumeration value ... not handled in switch
  3. Homebrew的基本使用与常见异常
  4. 教师评计算机课缺点及建议,听课优缺点评语
  5. android日志的代码定位
  6. 名帖357 薛绍彭 行草《杂书卷》
  7. 敲代码时如何快速移动光标_灵魂教学,如何成为一名真正的键盘侠
  8. 《史蒂夫.鲍尔默传》读书笔记
  9. 常用的数据分析方法都有哪些(一)
  10. python项目实战(一):购物商城(采用面向过程思想开发)