Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning
来源:互联网 发布:海阔淘宝客助手 编辑:程序博客网 时间:2024/05/15 10:22
Evaluating a Learning Algorithm
Deciding What to Try Next
当算法效果不好时,你可能会尝试:1. 收集更多数据 2. 增加属性 3.减少属性 4.修改regularition参数
lambda,下面几节会告诉你如何选择正确的做法。
Evaluating a Hypothesis
如何判定是否过拟合了?一种方法是拿出原训练集的70%做新训练集,计算出θ,然后另外30%做测试集
test,计算Jtest(θ)看看是不是很大,如果很大就说明过拟合了。
对于分类问题同样可以用Jtest(θ)来判断是否过拟合,还有另一种方法是用Test error来判断
Model Selection and Train/Validation/Test Sets
当你要添加一个新的属性时你有很多种选择,比如x,x^2,x^3。。。等等。一种选择的方法是同样把训练
集分成两部分,用新训练集分别对于每个可能填加的属性计算出相对应的θ,然后再对于每个θ计算
Jtest(θ),选择Jtest(θ)最小的θ对应的属性做为下一个添加的。但是这个方法依然是有问题的,test集起到的
作用太大了,可能过拟合test集。
因此真正有效的方法是把原训练集分成三部分:training(60%),cross validation(20%)和test(20%)。
使用training和validation按照上面的方法选择下一个属性,然后用test检测是否过拟合validation了。
总结就是,用生成θ的数据集来检测θ效果好不好是不合理的。要避免过拟合问题。
Bias vs. Variance
Diagnosing Bias vs. Variance
预测效果差的原因主要有两种:bias and variance。它们的具体解释可以看:
作者:orange prince
链接:https://www.zhihu.com/question/27068705/answer/35151681
来源:知乎
转载上面链接中的一段:
Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。
如上图所示:Jcv(θ)的最低点显然是最好的,左边的最高点就是high bias,由欠拟合引起,Jtrain(θ)和
Jcv(θ)都很大。右边的最高点是high varience ,由过拟合引起(曲线十分不平滑方差自然大),Jcv(θ)远远
大于Jtrain(θ)。
总结就是不能使用生成θ的数据集来测试θ效果的好坏。
Regularization and Bias Variance
上面training/validation/test分法同样可以用来确定最合适的regularization参数λ。方法是一样的,选择不
同的λ用train集合算出θ,再用cross validation算Jcv(θ)选择最小的θ对应的λ,再用test测试是否过拟合。
Learning Curves
学习曲线的形式是x轴为训练集样例数量,y轴为误差,如下图:
样例越少,越容易拟合,因此Jtrain(θ)递增。样例越多θ越具有普适性,因此Jcv(θ)递减。
High bias的学习曲线:
因为预测不具有普适性,对于大多数样例(不管是来自cross validation还是train)来说误差都很接近。因
此在high bias的情况下找更多训练数据也不会降低Jcv(θ)和Jtest(θ)。
High varience的学习曲线:
样例增多时,尽管θ是过拟合的,但是拟合的效果依然会缓慢减小,因此Jtrain(θ)缓慢递增,同时普适性也缓
慢增大,使得Jcv(θ)缓慢递减。
注意,在high varience情况下,Jtrain(θ)和Jcv(θ)并不会收敛,而是一直在接近对方。因此在这种情况下收
集更多的training set是有意义的。
Deciding What to Do Next Revisited
在神经网络中,简单的网络结构 : 计算量小,容易欠拟合; 复杂的网络结构 : 计算量大,容易过拟合。但
是最常用的还是使用复杂的网络结构,因为过拟合可以用regularization来调整。
在选择神经网络层数时,同样可以使用training/validation/test测试法。
- Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning
- 【Stanford机器学习笔记】8-Advice for Applying Machine Learning
- NG机器学习week6 Advice for Applying Machine Learning
- 斯坦福机器学习视频笔记 Week6 关于机器学习的建议 Advice for Applying Machine Learning
- Andrew NG 机器学习 笔记-week6-应用机器学习的建议 ( Advice for Applying Machine Learning)
- Coursera ML笔记 -----week6 Advice for Applying Machine Learning
- 机器学习笔记-advice for applying machine learning
- 【Coursera】Machine learning - week6 : Advice for Applying Machine Learning
- 测试【Machine Learning week6】Advice for Applying Machine Learning
- Stanford 机器学习-Advice for Applying Machine Learing
- Stanford Machine Learning: (4). Advice for applying Machine Learning
- Week6:Advice for Applying Machine Learning课后习题解答
- Week6:Advice for Applying Machine Learning课后习题解答
- 应用机器学习的建议(Advice for applying machine learning)
- Coursera机器学习-第六周-Advice for Applying Machine Learning
- Stanford 机器学习笔记 Week6 Machine Learning System Design
- Stanford ML - Lecture 6 - Advice for applying machine learning
- Machine Learning - X. Advice for Applying Machine Learning机器学习应用上的建议 (Week 6)
- 4.redis分片
- 九度题目1434
- Leetcode283 Move Zeros
- 关于notepad++和gcc绑定
- jdbc连接oracle的方法
- Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning
- 三层初体验
- 搭建博客hexo
- Win32 GetLasrError 实现
- 简单配置搞定 Nginx + Tomcat + HTTPS
- [iOS学习]关于多线程和NSThread
- Activity中的intent的FLAG代表的意义
- linux基础命令
- Http请求报文和响应报文