ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Datawhale学习打卡LeeML-Task03

2022-01-14 19:59:40  阅读:157  来源: 互联网

标签:偏差 误差 训练 方差 模型 LeeML 打卡 预测值 Task03


Datawhale学习打卡LeeML-Task03

梯度下降部分请转: Task03-梯度下降
本文档所参考的一些文档

————————————————————-—————————————————————————

误差

误差来源

误差来自于偏差(bias)和方差(variance)
更准确的说:可以分解为三个部分:样本噪音、模型预测值的方差、预测值相对真实值的偏差 E ( ( y − f ^ ( x ) ) 2 ) = σ 2 + Var ⁡ [ f ^ ( x ) ] + ( Bias ⁡ [ f ^ ( x ) ] ) 2 E\left((y-\hat{f}(x))^{2}\right)=\sigma^{2}+\operatorname{Var}[\hat{f}(x)]+(\operatorname{Bias}[\hat{f}(x)])^{2} E((y−f^​(x))2)=σ2+Var[f^​(x)]+(Bias[f^​(x)])2即:误差的期望值 = 噪音的方差 + 模型预测值相对模型期望(方差) + 预测值的期望相对真实值的偏差的平方

样本噪音说明:我们设置真实模型 f ( x ) = x + 2 s i n ( 1.5 x ) f(x) = x + 2sin(1.5x) f(x)=x+2sin(1.5x),样本值 y 就在真实值的基础上叠加一个随机噪音 N(0, 0.2)。即: y = x + 2 sin ⁡ ( 1.5 x ) + N ( 0 , 0.2 ) y=x+2 \sin (1.5 x)+N(0,0.2) y=x+2sin(1.5x)+N(0,0.2) 这样就存在样本噪音了。

解释:类比解释

在这里插入图片描述

靶心(红点)是测试样本的真实值,测试样本的y(橙色点)是真实值加上噪音,特定模型重复多次训练会得到多个具体的模型,每一个具体模型对测试样本进行一次预测,就在靶上打出一个预测值(图上蓝色的点)。

  • 所有预测值的平均就是预测值的期望(较大的浅蓝色点)通过期望与真实值进行比较 是否相等,即无偏;
    对应于打靶,如果不想等,就说明一开始瞄准的就不是真实值,比如实际上射击瞄准的是9环而不是10环。
  • 浅蓝色的圆圈表示预测值的离散程度,即预测值的方差(每一次的预测结果相对于模型的期望而言)。对于打靶反应的是模型的稳定性。

所以,特定模型的预测值 与 真实值 的误差的 期望值,分解为上面公式中的三个部分,对应到图上的三条橙色线段:预测值的偏差、预测值的方差、样本噪音。
在这里插入图片描述

数学证明

具体可见:偏差(Bias)和方差(Variance)——机器学习中的模型选择

—————————————————————————————————————————————

估计变量x的偏差和方差

  • 假设x 的平均值是 μ \mu μ,方差为 σ 2 \sigma^2 σ2

估计变量x的偏差

估计平均值

  • N个样本点 : { x 1 , x 2 , … , x N } \left\{x^{1}, x^{2}, \ldots, x^{N}\right\} {x1,x2,…,xN}
    m = 1 N ∑ n x n ≠ μ E [ m ] = E [ 1 N ∑ n x n ] = 1 N ∑ n E [ x n ] = μ \begin{aligned} &m=\frac{1}{N} \sum_{n} x^{n} \neq \mu \\ &E[m]=E\left[\frac{1}{N} \sum_{n} x^{n}\right]=\frac{1}{N} \sum_{n} E\left[x^{n}\right]=\mu \end{aligned} ​m=N1​n∑​xn​=μE[m]=E[N1​n∑​xn]=N1​n∑​E[xn]=μ​ N个样本的平均值不等于 μ \mu μ(需要N足够大) 但是多个m的期望等于 μ \mu μ——> 无偏估计
    在这里插入图片描述
    m的分布对于 μ \mu μ的离散程度(方差): V ar ⁡ [ m ] = σ 2   N \mathrm{V} \operatorname{ar}[\mathrm{m}]=\frac{\sigma^{2}}{\mathrm{~N}} Var[m]= Nσ2​
    可以看出方差取决于样本数量,数量越多,分布越密集

在这里插入图片描述

估计变量x的方差

  • N个样本点 : { x 1 , x 2 , … , x N } \left\{x^{1}, x^{2}, \ldots, x^{N}\right\} {x1,x2,…,xN}
    m = 1 N ∑ n x n s = 1 N ∑ n ( x n − m ) 2 m=\frac{1}{N} \sum_{n} x^{n} \quad s=\frac{1}{N} \sum_{n}\left(x^{n}-m\right)^{2} m=N1​n∑​xns=N1​n∑​(xn−m)2
    Biased estimator:
    E [ s ] = N − 1 N σ 2 ≠ σ 2 E[s]=\frac{N-1}{N} \sigma^{2} \neq \sigma^{2} E[s]=NN−1​σ2​=σ2
    N越多,越接近 σ 2 \sigma^{2} σ2

在这里插入图片描述

不同模型的偏差和方差

用相同的模型model,在不同的数据集中找到的f*是不一样的

在这里插入图片描述

考虑不同模型的偏差

黑色是真实的函数 红色是我们找到的5000个函数 ——> 看平均
在这里插入图片描述在这里插入图片描述

  • 结论:简单的模型偏差大,复杂的模型偏差小

考虑不同模型的方差

一次模型的方差就比较小的,也就是是比较集中,离散程度较小。而5次模型的方差就比较大,同理散布比较广,离散程度较大。

所以用比较简单的模型,方差是比较小的(就像射击的时候每次的时候,每次射击的设置都集中在一个比较小的区域内)。如果用了复杂的模型,方差就很大,散布比较开。

这也是因为简单的模型受到不同训练集的影响是比较小的。
在这里插入图片描述

  • 简单的模型,方差是比较小,复杂模型,方差大

过拟合和欠拟合

在这里插入图片描述

将误差拆分为偏差和方差。简单模型(左边)是偏差比较大造成的误差,这种情况叫做欠拟合,而复杂模型(右边)是方差过大造成的误差,这种情况叫做过拟合。

怎么判断

1. 模型训练训练集不好 ——> Bias偏差大——>欠拟合
	解决方法:resign your model:输入更多的feature、用更复杂的模型

2. 模型很好的训练训练集,即再训练集上得到很小的错误,但在测试集上得到大的错误——>方差过大——>过拟合
	解决方法:1.更多的数据(有效但不实用)2.数据增强 3.正则化(Regularization)

偏差和方差的trade-off (平衡)——模型选择

图中public的测试集是已有的,private是没有的

交叉验证

交叉验证 就是将训练集再分为两部分,一部分作为训练集,一部分作为验证集。

在这里插入图片描述

用训练集训练模型,然后再验证集上比较,确实出最好的模型之后(比如模型3),再用全部的训练集训练模型3,然后再用public的测试集进行测试。
此时一般得到的错误都是大一些的。不过此时会比较想再回去调一下参数,调整模型,让在public的测试集上更好,但不太推荐这样。(不要用测试集)

N-折交叉验证

将训练集分成N份,比如分成3份。分别训练,求误差平均后选择模型,再用全部训练集训练模型1。

在这里插入图片描述

标签:偏差,误差,训练,方差,模型,LeeML,打卡,预测值,Task03
来源: https://blog.csdn.net/weixin_43873591/article/details/122496453

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有