博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
吴恩达机器学习系列15:学习曲线
阅读量:6997 次
发布时间:2019-06-27

本文共 855 字,大约阅读时间需要 2 分钟。

我们在调试一个学习算法时,通常会用学习曲线(Learning Curves观察机器学习算法是否为欠拟合过拟合

随着样本数的不断增大,我们发现在高偏差(欠拟合)时交叉验证集代价函数 J_cv(θ) 测试集代价函数 J_test (θ) 的图像如下,这个图像也叫做学习曲线(Learning Curves):

在高偏差时,随着样本数目的增加,测试集的偏差与交叉验证集的偏差几乎相等,测试集的偏差在上升到一定程度后就不会继续上升;根据交叉验证集来看,多项式的泛化程度随着数据集的增加减小到一定程度后就不再减小。这代表着,在高偏差(欠拟合)的情况下,增大数据集并不会优化你的算法。所以,在高偏差的情况下,你不需要把时间浪费在收集大量数据上。

再来看,在高方差的情况:

在高方差下,随着样本数目的增加,交叉验证集的偏差一直与测试集的偏差有很大的差距,测试集的偏差在不断地上升;根据交叉验证集来看,多项式的泛化程度随着数据集的增加而不断地减小。这代表着,在高方差(过拟合)的情况下,增大数据集在一定程度上会优化你的算法。

因此,你了解当前算法处于高偏差或高方差对于你决定是否把大量的时间花费在寻找数据集很有必要,这会为你节省大量的时间,把时间用在刀刃上吧!

回到一开始的问题,在机器学习中,我们训练了一个模型,可能会发现这个模型得到的数据与实际数据偏差太大,也就是这个模型表现的不好。这时,我们需要想一些方法来优化我们的算法。

下面这些方法,就是在遇到高方差或高偏差时,我们所需要做的事情。

  • 得到更多的训练集:适用于高方差

  • 减小特征的数目:适用于高方差

  • 尝试去增加特征:适用于高偏差

  • 增加多项式:适用于高偏差

  • 增大 λ:适用于高方差

  • 减小 λ:适用于高偏差

ps. 本篇文章是根据吴恩达机器学习课程整理的学习笔记。如果想要一起学习机器学习,可以关注微信公众号「SuperFeng」,期待与你的相遇。

转载于:https://juejin.im/post/5ca5aa8ae51d45374b5e6b4b

你可能感兴趣的文章
自定义progressbar
查看>>
Hibernate JPA 动态criteria语句针对null查询条件的特殊处理
查看>>
GetWindowLong说明及应用 <2>
查看>>
(WPF&Silverlight)可空,null
查看>>
WCF Basic Concept
查看>>
如何精简Unity中使用的字体文件
查看>>
JavaScript基础17——js的Date对象
查看>>
面向对象
查看>>
android The project target (Android 2.3.3) was not properly loaded
查看>>
BZOJ 2424 DP OR 费用流
查看>>
Docker随笔:Hyper-V PowerShell Module is not available报错解决方法
查看>>
Cookie操作-----Selenium快速入门(十一)
查看>>
Codeforces Round #372 (Div. 2) C 数学
查看>>
Trie 字典树
查看>>
DMR技术白皮书
查看>>
讯飞语音——唤醒
查看>>
设计模式实践-反射到所有接口实现类实践工厂方法,页面中有大量计算数据时设计实践...
查看>>
Angular学习笔记
查看>>
批处理-字符串操作
查看>>
在IIS中部署和注册WCF服务
查看>>