发现自己不写总结真是件很恶劣的事情,好多学的东西没有自己总结都忘记了。所以决定从今天开始,学东西的时候一定跟上总结。

我写的东西大多数是自己通俗的总结,不太喜欢写严格的定义或者证明,写了也记不住,欢迎指正。

1. High Bias vs. High Variance

High Bias:通常是因为模型过于简单,使得不能成功拟合数据。比如说一些有二次曲线特性的数据,如果用一次直线去拟合就会出现这个问题,所以它对应了Underfitting问题。另外,从泛化角度来说,这样的模型泛化程度更高。

High Variance:通常是因为模拟过于复杂,使得模型泛化到一般数据时效果很差,但是在训练数据上效果通常很好的问题,它对应了Overffiting的问题。从泛化角度来说,这样的模型泛化程度很低。

2. Cross Validation Set, Training Set, Test Set

Cross Validation Set: 测试模型以调整参数

Training Set:训练数据集

Test Set:最终测试数据集

其实我一直不太明白为什么要单独设置一个Cross Validation,后来做Review Question的时候做到这道题:为什么不能用测试数据集测试模型来调整模型参数?答案是测试数据集可能使得模型把参数调整到只适合测试数据集的范围,这样模型在遇到一个没见过的实例时,效果还是不好。所以我们单独设置一个Cross Validation集合来调整参数,如果这样最后在测试数据上的表现很好,那么就有信心这个模型是真的好了。

在这三个集合上的误差分别由如下公式计算:

Jtrain  = 1/2m ∑(hθ(x(i)-y(i))2

Jcv  = 1/2mcv ∑(hθ(x(i)-y(i))2

Jtest  = 1/2mtest ∑(hθ(x(i)-y(i))2

3. Learning Curves:有助于查看模型是High Bias还是High Variance,两者的图分别如下

High Bias:

当underfitting的时候,训练数据集越少,模型越容易拟合数据,所以训练集上误差越小,此时模型几乎不能描述数据集任何特征,所以在cross validation上误差很高;随着训练数据的增加,模型的不足逐渐暴露出来,在训练数据集上的误差逐渐增大,但能描述一些数据特征,所以在corss validation上的误差逐渐减小;最后,算法在cross validation和训练数据集的误差逐渐靠近,并且都很高,最后即使增加训练数据,二者也不会降低,因为模型的“描述能力”很低,即使有再多的数据也没有发展空间了。

High Variance:

当overfitting的时候,train error和cv error变化的原因跟上述一致,不同的在于此时模型具有模型更复杂特征的能力,cv error和 train error之间会有一个gap,我们可以认为这个gap会随着训练数据的增多而减少,因为过拟合在实际中效果差的原因是它有可能拟合了一些噪音点,而没有突出数据的整体特征,那么随着训练数据的增多,受单个噪音点的影响就会降低,cv error就会降低。

4.根据High Bias和High Variance使用不同的方法

Get  more  training  examples  High Variance
Try  smaller  sets  of  features High Variance
Try  getting  additional  features High Bias
Try  adding  polynomial  features High Bias
Try  decreasing λ High Bias
Try  increasing λ High Variance

5. Error Analysis

指手动查看数据以找出算法哪方面最弱,根据特定方向改进算法。

比如说一个文档分类器的效果很差,那么有两种error analysis的步骤:第一,查看算法是否在某一类特定的文本上效果差;第二,看算法是否在某一方面表现很差,比如是否在有拼写错误或者没有提取词干等。

Recommended approach:

Implement a simple and quick model->plotting learning curves->error analysis

6. Precision vs. Recall

Precision = #True Positive /#predicted positive = #True Positive / (#True Positive + # False Positive)

即在模型预测是正例中,实际也是正例的百分比。就好像我给人算命,准确率就是在我说有桃花运的人里面真的就有桃花运的人的百分比。

Recall = #True Positive / # actual positive = #True Positive/(#True Positive+#False Negative)

即在所有的正例中,模型预测也是正例的百分比。就好像检查一个人得没得癌症,召回率的意思就是在实际得癌症的人中我“召回”的人的百分比(得了癌症当然要召回来告诉人家了)。

试想一个模型只有1%的正例,如果只考虑准确率的话,那么我预测所有的模型都是负例,也可以得到99%的准确率,显然不是一个实用的模型。但是如果我同时考虑了召回率,就会发现此时的召回率是0,就可以断定这不是一个好模型。

7. F Score(F1 Score)

在准确率和召回率之间有一个tradoff,准确率越高,召回率越低;反之亦然。那么怎么衡量一个模型是“准确率和召回率都很高”呢?

一个指标就是F Score:2PR/(P+R),        P ,R分别表示准确率和召回率

我们可以这么看这个公式,它也等于2/(1/P + 1/R)(和初中计算平均速度的公式很像,不知道算不算一点理解F Score的启发)。在这个公式里,如果P和R任何一方降低,那么F Score就会降低。

8. Large Data Rationale

一个好的模型要求两点:

(1)人工可以从数据集准确预测。如果人都做不到的事情,就不要为难机器了。比如上次那个坑爹的表情识别,人都看不出sad和angry的区别,干嘛去折磨电脑呢。

(2)有很多数据训练一个有很多参数的模型。第一,一个复杂的模型保证Jtrain很小;第二,大量的训练数据保证Jtrain和Jtest 相近,这样我就可以认为Jtest 也很小了。

【coursera笔记】Machine Learning(Week6)的更多相关文章

  1. Coursera《machine learning》--(14)数据降维

    本笔记为Coursera在线课程<Machine Learning>中的数据降维章节的笔记. 十四.降维 (Dimensionality Reduction) 14.1 动机一:数据压缩 ...

  2. Coursera《machine learning》--(8)神经网络表述

    本笔记为Coursera在线课程<Machine Learning>中的神经网络章节的笔记. 八.神经网络:表述(Neural Networks: Representation) 本节主要 ...

  3. Coursera《machine learning》--(2)单变量线性回归(Linear Regression with One Variable)

    本笔记为Coursera在线课程<Machine Learning>中的单变量线性回归章节的笔记. 2.1 模型表示 参考视频: 2 - 1 - Model Representation ...

  4. Coursera《machine learning》--(6)逻辑回归

    六 逻辑回归(Logistic Regression:LR) 逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就是由于这个逻辑函数,使得 ...

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

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

  6. How do I learn machine learning?

    https://www.quora.com/How-do-I-learn-machine-learning-1?redirected_qid=6578644   How Can I Learn X? ...

  7. Coursera课程《Machine Learning》学习笔记(week1)

    这是Coursera上比较火的一门机器学习课程,主讲教师为Andrew Ng.在自己看神经网络的过程中也的确发现自己有基础不牢.一些基本概念没搞清楚的问题,因此想借这门课程来个查漏补缺.目前的计划是先 ...

  8. 学习笔记之Machine Learning by Andrew Ng | Stanford University | Coursera

    Machine Learning by Andrew Ng | Stanford University | Coursera https://www.coursera.org/learn/machin ...

  9. Coursera课程《Machine Learning》吴恩达课堂笔记

    强烈安利吴恩达老师的<Machine Learning>课程,讲得非常好懂,基本上算是无基础就可以学习的课程. 课程地址 强烈建议在线学习,而不是把视频下载下来看.视频中间可能会有一些问题 ...

  10. Machine Learning|Andrew Ng|Coursera 吴恩达机器学习笔记

    Week1: Machine Learning: A computer program is said to learn from experience E with respect to some ...

随机推荐

  1. 腾讯qq的发展史

    腾讯qq的发展史 即时通信软件的历史并不久远,但是它一诞生,就立即受到网民的喜爱,并风靡全球.    在其发展史上,以色列人功不可没.正是四位以色列籍的年轻人,在1996年7月成立的Mirabilis ...

  2. 图片上传前的预览(PHP)

    1.先创建一个file表单域,我们需要用它来浏览本地文件.<form name="form1" id="form1" method="post& ...

  3. Mybatis错误调试(二)

    错误日志信息:  Caused by: java.sql.BatchUpdateException: ORA-00911: 无效字符 at oracle.jdbc.driver.OraclePrepa ...

  4. 迭代启发式搜索 IDA*

    本章聚集了一些做了的迭代启发式搜索的题目 为什么只打了迭代启发式搜索? 因为它很好打,有些类似迭代的时候加的最优化剪枝 [因为这个最优化剪枝其实就是你算的估价函数了...] BZOJ 1085 骑士精 ...

  5. 【BZOJ】【2480】【SPOJ 3105】Mod

    扩展BSGS Orz zyf……然而他的题解对AC大神的题解作了引用……而坑爹的百度云……呵呵了... 扩展BSGS模板题 /************************************* ...

  6. Swift-2-基本操作符

    // Playground - noun: a place where people can play import UIKit // 基本运算符 // 运算符有3种: 单目运算符(如 -a),二目运 ...

  7. 15万甚至30万以内的SUV值不值得买?

    大家好,这个帖子比较长,也是我一直以来长期实践.思考.验证的结论,不当之处还请指正,也欢迎大家来共 同讨论,已经买了此价位SUV的战友们,看完后也不要生气,毕竟我的出发点是注重行车安全,人非神明,是个 ...

  8. HDOJ 2079 选课时间(母函数)

    选课时间(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  9. “System.Data.Entity.Internal.AppConfig"的类型初始值设定项引发异常。{转}

    <connectionStrings> <add name="ConnectionStringName" providerName="System.Da ...

  10. vi/vim使用指北 ---- Introducting the ex Editor

    本章介绍ex编辑器,为什么要介绍这样一个新的编辑器呢:其实ex编辑器不能算是一个新的编辑器,vi只是它的visual model,它已经是一个更普遍,基于行的编辑器.ex提供更大机动和范围的编辑命令. ...