假设现在只有100个样本的小训练集,使用随机挑选的分别包含10个,20个,30个,…, 100个样本的数据子集,样本子集每次增加10个样本,使用这10个样本子集去绘制学习曲线,你可能会发现曲线含有一些噪音(噪音意思是误差数值比期望值高或者低很多)。

如果用随机挑选的10个样本来训练模型,可能你很不幸运地挑选的是极差的训练集,其中包含了很多模糊的或是贴错标签的数据,也可能你很幸运地挑选了极好的训练集。使用小数据集意味着开发集和训练集损失会随机波动。

如果一个机器学习算法的数据集在很大程度上偏向某一类(比如猫分类任务中,负样本数量(非猫)比正样本数量(猫)大很多)或者数据集中有很多类,那么你选取一个不具有代表性或者极差得训练集的可能性就会很大。比如80%的样本是负样本(y=0),只有20%的样本是正样本(y=1),那么从这个数据集中选择10个样本有可能都是负样本,因此学习算法很难在这10个样本上学到有意义的东西。

如果学习曲线中的噪音使得很难看清曲线的趋势,有如下两个解决办法:

  • 不要只在10个样本上训练,而是每次要有放回的随机从训练集的100个样本中选择10个样本,这样重复几次,获得几组不同的样本子集,分别在这些子集上训练模型并计算训练集和开发集损失,最后计算在这些子集上平均开发集损失,平均训练集损失。
  • 如果训练集偏向于某一类或者训练集类别很多,不要随机选择10个子集,而是要挑选一个“平衡”的子集。比如:保证挑选的样本中有2/10是正例,8/10是反例。一般来说就是确保子集中每一类样本所占的比例和原始训练集中该类所占的比例相同。

除非已绘制了学习曲线并发现曲线含有太多噪音而不能看到趋势,否则我不会去考虑上面的两种技术,如果训练集很大——假设超过10,000个样本——而且类分布均匀,也不用考虑上面的方法。

最后,绘制学习曲线的计算成本可能很大:例如从1000个样本开始直到10,000个样本,训练集每增加1000个样本就训练一个模型,这样总共要训练10个模型。我们知道在小数据集上训练比在大数据集上要快很多,(为了节省时间),训练集不要每次增加1000个样本,而是第一次增加1000,第二次增加2000等等,比如分别在1000,2000,4000,6000,10,000个样本上训练模型。这种方式任然可以很清晰的表示出学习曲线的走向。当然,这种方式是对于每次增加1000个样本,训练10个模型的计算量太大的问题而言的。

32 绘制学习曲线 ( Plotting learning curves)相关推荐

  1. 学习曲线( learning curve)是什么?如何绘制学习( learning curve)曲线?学习曲线( learning curve)详解及实践

    学习曲线( learning curve)是什么?如何绘制学习( learning curve)曲线?学习曲线( learning curve)详解及实践 学习曲线如何帮助你从数据的角度来查看方差和偏 ...

  2. 斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)...

    绘制学习曲线非常有用,比如你想检查你的学习算法,运行是否正常.或者你希望改进算法的表现或效果.那么学习曲线就是一种很好的工具.学习曲线可以判断某一个学习算法,是偏差.方差问题,或是二者皆有. 为了绘制 ...

  3. 28 诊断偏差和方差:学习曲线 (28 Diagnosing bias and variance_ Learning curves)

    我们已经知道一些方法可以用来估计(可避免的)偏差和方差可以导致多少误差.这些方法包括估计最佳的错误率和计算算法的训练集和开发集误差.下面我们将讨论一种可以获得更多信息的方法:绘制学习曲线. 学习曲线绘 ...

  4. 绘制学习曲线——plot_learning_curve

    学习曲线:一种用来判断训练模型的一种方法,通过观察绘制出来的学习曲线图,我们可以比较直观的了解到我们的模型处于一个什么样的状态,如:过拟合(overfitting)或欠拟合(underfitting) ...

  5. 绘制学习曲线,以确定模型的学习状况

    绘制学习曲线,以确定模型的学习状况 from sklearn.svm import LinearSVC from sklearn.learning_curve import learning_curv ...

  6. 机器学习:使用matlab实现曲线线性回归拟合并绘制学习曲线

    文章目录 数据集划分 数据可视化 代价-梯度函数 求解 线性拟合 绘制学习曲线 多项式拟合 再次求解 选择合适的正则参数 数据集划分 先将数据集划分为训练集.验证集和测试集,标记为X,y.Xval,y ...

  7. python+sklearn训练决策树分类模型(绘制学习曲线和验证曲线)

    本文所用文件的链接 链接:https://pan.baidu.com/s/1RWNVHuXMQleOrEi5vig_bQ 提取码:p57s 关于决策树的初级应用,可以看我之前的文章: https:// ...

  8. 论文阅读32 | Channel Augmented Joint Learning for Visible-Infrared Recognition

    论文:Channel Augmented Joint Learning for Visible-Infrared Recognition 出处:CVPR 2021 1.摘要 这篇文章介绍了一种通道增强 ...

  9. AI实战圣经《Machine Learning Yearning》第1-52章中英文版pdf分享

    <Machine Learning Yearning>是机器学习泰斗Andrew NG花了近2年时间,根据自己多年实践经验整理出来的一本机器学习.深度学习实践经验宝典.本书的重点不在于教授 ...

最新文章

  1. mysql基础 事务的认识和使用
  2. LSMW批处理使用方法(06)_步骤4、5
  3. 到你是你玩互联网还是互联网玩了你
  4. linux软连接与硬链接
  5. 【MATLAB统计分析与应用100例】案例005:matlab调用medfilt1函数对加噪正弦波信号进行平滑处理
  6. web前端到底是什么?有前途吗
  7. DataGridView,Dataset,DataTable,DataRow等使用心得
  8. python 多层for循环转递归/迭代
  9. 正则表达式RegExp对象
  10. udp丢包解决办法 (没打开接收发送缓存)及setsockopt()用法 -转
  11. **踩坑之通用Mapper中 Mapper.selectByExample(example)**的返回
  12. 网页显示mysql数据库到表格数据_html表格显示数据库数据
  13. 计算机cpu结构实物图片,cpu内部结构显微图/cpu内部结构放大图
  14. Median(查找中位数)
  15. linux 设备类型misc,linux驱动开发之misc类设备介绍
  16. playwright 组件超时问题
  17. 大数据的周边技术-这个解释很通俗
  18. html 设置图片左对齐,CSS设置图片的对齐
  19. 计算机不识别lacie硬盘,windows10系统下移动硬盘读不出来的三种解决方案
  20. python namedtuple用法_Python namedtuple

热门文章

  1. 考研英语二真题文章重点单词
  2. 煽情的儿子23=随笔
  3. Linux常用指令学习(篇三):文件搜索命令
  4. VB 抓取网站验证码图片
  5. linux shell命令对时间的处理(精确到秒、毫秒、纳秒)——筑梦之路
  6. 浅析QuickBI为何能成为国内首个入选Gartner魔力象限的BI产品
  7. owncloud安装
  8. C# Ping 简单使用
  9. oneAPM 和 open-falcon系统指标采集简单对比
  10. css3渐变透明文字遮盖解决文字只显示一部分的问题