当前位置:网站首页>李宏毅机器学习(2017版)_P5:误差
李宏毅机器学习(2017版)_P5:误差
2022-07-26 22:42:00 【北海虽赊,扶摇可接】
目录

相关资料
开源内容:https://linklearner.com/datawhale-homepage/index.html#/learn/detail/13
开源内容:https://github.com/datawhalechina/leeml-notes
开源内容:https://gitee.com/datawhalechina/leeml-notes
视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef
官方地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses.html
1、误差来源
预测误差有两个来源,分别是偏差biasbias 和方差variancevariance 。
2、误差估测
2.1、评估x的偏差
假设 xx 的平均值是 μ \mu μ,方差为 σ 2 \sigma^2 σ2
- 首先拿到 N 个样本点: ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) (x_1, y_1),(x_2, y_2),...,(x_n, y_n) (x1,y1),(x2,y2),...,(xn,yn)
- 计算平均值 m, 得到 m = 1 N ∑ n x n ≠ μ m=\frac{1}{N}\sum_nx_n\neq μ m=N1∑nxn=μ
- 计算很多组的 m ,然后求 m 的期望:(无偏估计(unbiased))
E [ m ] = E [ 1 N ∑ x n ] = 1 N ∑ n E [ x n ] = μ E \left[ m \right] =E \left[ \frac{1}{N}\sum x^{n}\right] = \frac{1}{N}\sum _{n}E \left[ x^{n}\right] =\mu E[m]=E[N1∑xn]=N1n∑E[xn]=μ
2.2、评估x的方差
mm 分布对于 μ \mu μ 的离散程度(方差)取决于 N, N 越小越离散
V a r [ m ] = σ 2 N Var \left[ m \right] = \frac{\sigma ^{2}}{N} Var[m]=Nσ2
方差为近似估计。
3、影响因素
3.1、不同数据集
用同一个model,在不同的训练集中找到的 f ∗ f^∗ f∗就是不一样的,不同数据集对于模型训练影响比较大。
3.2、不同模型
3.2.1、考虑不同模型的方差
一次模型的方差就比较小的,也就是是比较集中,离散程度较小。而5次模型的方差就比较大,同理散布比较广,离散程度较大。
所以用比较简单的模型,方差是比较小的。如果用了复杂的模型,方差就很大,散布比较开。
这也是因为简单的模型受到不同训练集的影响是比较小的。
3.2.1、考虑不同模型的偏差
一次模型的偏差比较大,而复杂的5次模型,偏差就比较小。
直观的解释:简单的模型函数集的space比较小,所以可能space里面就没有包含靶心,肯定射不中。而复杂的模型函数集的space比较大,可能就包含的靶心,只是没有办法找到确切的靶心在哪,但足够多的,就可能得到真正的 f ^ \hat{f} f^。
4、优化处理
简单模型是偏差比较大造成的误差,这种情况叫做欠拟合,而复杂模型(是方差过大造成的误差,这种情况叫做过拟合。
如果模型没有很好的训练训练集,就是偏差过大,也就是欠拟合 如果模型很好的训练训练集,即再训练集上得到很小的错误,但在测试集上得到大的错误,这意味着模型可能是方差比较大,就是过拟合。 对于欠拟合和过拟合,是用不同的方式来处理的。
4.1、欠拟合
此时应该重新设计模型。因为之前的函数集里面可能根本没有包含 f ∗ f^* f∗。可以:
- 将更多的函数加进去,比如考虑高度重量,或者HP值等等。
- 或者考虑更多次幂、更复杂的模型。
- 如果此时强行再收集更多的data去训练,这是没有什么帮助的,因为设计的函数集本身就不好,再找更多的训练集也不会更好。
4.2、过拟合
- 简单粗暴的方法:更多的数据
- 针对对问题的理解对数据集做调整:数据增强
5、模型选择
5.1、模型区别
现在在偏差和方差之间就需要一个权衡 想选择的模型,可以平衡偏差和方差产生的错误,使得总错误最小。
==注意:==不能训练后直接根据测试集进行筛选,因为测试集存在差异性。用训练集训练不同的模型,然后在测试集上比较错误,就认为最优模型好。但实际上这只是你手上的测试集,真正完整的测试集并没有。比如在已有的测试集上错误是0.5,但有条件收集到更多的测试集后通常得到的错误都是大于0.5的。
5.2、交叉验证

将训练集再分为两部分,一部分作为训练集,一部分作为验证集。
用训练集训练模型,然后在验证集上比较,确实出最好的模型之后,再用全部的训练集训练最优模型,然后再进行测试。
5.3、N-折交叉验证

将训练集分成N份,比如分成3份。比如在三份中训练结果Average错误是模型1最好,再用全部训练集训练模型1。
边栏推荐
- [HarekazeCTF2019]encode_ and_ encode
- Redisson 工作原理-源码分析
- 短视频App开发有哪些必备的功能?
- [b01lers2020]Welcome to Earth
- Which securities company has a low stock commission and which stock is safe to open an account
- Use and cases of partitions
- logback自定义MessageConverter
- SparkSql之DataFrame
- 李宏毅机器学习(2021版)_P7-9:训练技巧
- Flask学习最佳入门指南
猜你喜欢

通过FlinkCDC将MySQL中变更的数据写入到kafka(DataStream方式)

Use and cases of partitions

Scala-模式匹配

forward和redirect的区别

分区的使用及案例
![[HarekazeCTF2019]encode_ and_ encode](/img/f5/c06523a1764717bdf2d91f069c9d77.png)
[HarekazeCTF2019]encode_ and_ encode

Flink 1.15 local cluster deployment standalone mode (independent cluster mode)

MySQL索引优化:哪些情况下需要建立索引(适合构建索引的几种情况)

深度学习报告(3)

Valueerror: the device should not be 'GPU', since paddepaddle is not compiled with CUDA
随机推荐
Android——LitePal数据库框架的基本用法
[HarekazeCTF2019]encode_ and_ encode
移动直播选择 RTMP 还是RTC协议
基于Flink实时计算Demo—关于用户行为的数据分析
Canal 安装
MySQL uses and implements ranking functions rank and deny_ Rank and row_ NUMBER
VMware Workstation 虚拟机启动就直接蓝屏重启问题解决
Canal introduction
MySql - 如何确定一个字段适合构建索引?
[WUSTCTF2020]CV Maker
深入理解Pod对象:基本管理
MySQL第一篇
[CTF攻防世界] WEB区 关于备份的题目
哪个证券公司开户股票佣金低,哪个股票开户安全
2022.7.14DAY604
2022.7.18DAY608
Scala pattern matching
[RootersCTF2019]I_< 3_ Flask
Spark on yarn's job submission process
Flink 1.15 local cluster deployment standalone mode (independent cluster mode)