为什么方差小于均值与方差的关系是拟合合适的

下列四个命题:①将一组数据中嘚每个数据都加上同一个常数方差不变②设有一个回归方程为?y=3-5x,则当变量x增加一个单位时y平均减少5个单位③将一组数据中的每个数據都加上同一个常数,均值与方差的关系不变④在回归分析中我们常用R2来反映拟合效果.R2越大,残差平方和就越小拟合的效果就越好.其中错误的命题个

试题难度:难度:中档 试题类型:单选题 试题内容:下列四个命题:
①将一组数据中的每个数据都加上同一个常数,方差不变
②设有一个回归方程为?y=3-5x则当变量x增加一个单位时,y平均减少5个单位
③将一组数据中的每个数据都加上同一个常数均值与方差的关系不变
④在回归分析中,我们常用R2来反映拟合效果.R2越大残差平方和就越小,拟合的效果就越好.
其中错误的命题个数是(  )A.0B.1C.2D.3

}

直接从文件中读取的数据X:

直接从攵件中读取的数据y:

可以知道都是二维数组类型

将y展开为一维数组后:

返回的是一维数组来表示参数向量 

(一)使用高级优化算法求解参數



1.我们已经使用全部训练集得出了一个模型,该模型可能存在过拟合或者欠拟合问题下面将说明训练集数据增大后对这个模型的影响。

唎如:对于下面数据我们提出下面线性模型:

 则无论我们如何改变参数θ,依旧存在欠拟合情况。

2.同时为了我们方便判断这个模型的到底是过拟合还是欠拟合,我们通过绘制学习曲线来进行判断

1.增大训练集数据,对高偏差无用---(已有模型该模型欠拟合)

只是一条直线來减小拟合是不可能对这组数据进行很好得拟合。所以当我们给出交叉验证集误差随着m得增大得图像时会发现,误差会随着m增大逐渐减尛但是会存在一个下界。

同样训练误差一开始也是很小的而在高偏差的情况下,你会发现训练集误差会逐渐增大最后接近交叉验证誤差:

2.增集数据,对高方差有用 ---(已有模型该模型过拟合)

训练误差---当训练样本越多的时候,就越难把训练集数据拟合得更好但总的來说训练集误差还是很小得

交叉验证误差---过拟合下(泛化能力很差),验证误差将会一直很大尽管随着样本增大,但是总的来说还是很夶

其特点是:在训练误差和交叉验证误差之间有一段很大的差距。

当我们增大样本数量时训练误差会增大,而验证误差会减少所以高方差下,增大样本数量还是有用的 

对于训练集,当d较小时模型拟合程度更低,误差较大;随着d的增长拟合程度提高,误差减小

對于交叉验证集,当d较小时模型拟合程度低,误差较大;但是随着d的增长误差呈现先减小后增大的趋势,转折点是我们的模型开始过擬合训练数据集的时候

 训练集误差和交叉验证集误差近似时:偏差/欠拟合---多项式次数d太小,我们应该适当增大

 交叉验证集误差远大于训練集误差时:方差/过拟合---多项式次数d太大我们应该适当减小

(三)正则化程度入---线性回归举例

1.当我们设置入较大时,比如入=1000这时θ_1,...,θ_m嘟将受到很大的惩罚。所以θ_1,...,θ_m几乎都等于0.这时H_θ(x)≈θ_0

因此这个假设处于高偏差对数据集严重欠拟合。

2.与之对应的另一种情况是如果峩们的lambda值很小,比如说lambda的值等于0的时候在这种情况下,如果我们要拟合一个高阶多项式的话那么此时我们通常会处于过拟合的情况。

3.呮有当我们取一个中间大小的既不大也不小的lambda值时,我们才会得到一组合理的对数据刚好拟合的theta参数值

当入较小时,训练集误差较小(过拟合)而交叉验证集误差较大--高方差

随着入的增加训练集误差不断增加(欠拟合),而交叉验证集误差则是先减小后增加---高偏差

从峩们在五中学习曲线中可以看出,使用线性模型模型存在欠拟合(高偏差)状态所以这里我们为了解决欠拟合问题,应该尝试增加多項式特征

(一) 增加特征,扩展特征(从1到10阶)

补充:两个向量之间进行平方运算

a**b,b会对a进行列扩展

(二)获取扩展多项式后训练集的均值与方差的关系和方差

在进行归一化处理之前,我们需要获取均值与方差的关系和方差(和我们五中获取theta一样),是从训练集中获取數据信息然后运用到后面训练集、验证集、测试集中进行归一化处理。并且在绘制拟合图形和学习曲线时都会受到我们从训练集中获取的均值与方差的关系和方差影响。

(三)归一化数据 (6阶来测试)

对于我们进行扩展后的多项式各个特征中的数据大小差异可能过大,我们要进行归一化处理防止某一个特征影响太大,从而影响其他特征的作用这里我们使用标准差标准化。

(四)对训练数据、验证樣本、测试样本进行多项式处理、归一化处理(6阶测试)

(五)高级优化算法获取多项式参数向量

(六)获取训练误差和验证误差

(七)繪制学习曲线---用于判断求取合适的多项式项数

由六(二)可以知道我们选取项数为3时,可以很好的拟合数据集!!!

由于我们上面使用叻多项式解决了欠拟合问题这里我们使用正则化参数入来解决一个过拟合问题!!!

从七中,我们可以知道当我们项数小于3时,趋于欠拟合(高偏差)当我们选取的项数大于3时,趋于过拟合(高方差)

所以我们这里选取多项式特征为6,以此为基础来解决过拟合问题!!!

(一)设置多项式特征为6入=0,进行过拟合测试绘制拟合图形

与我们上面获得的,多项式特征为3比较发现在两端有明显过拟合現象。所以下面我们通过修改正则化程度入来进行改善!!!

(二) 获取训练误差和验证误差

重点注意:五中提及的对于我们后面的训練集、验证集求解误差时,不需要进行正则化所以我们需要将其入设置为0!!!

(三)绘制学习曲线---用于判断求取合适的正则化程度入徝

由六(三)可以知道,当我们选择正则化程度入值为3时可以很好的防止过拟合!!!



这里给大家推荐一个在线软件复杂项交易平台:米鼠网

米鼠网自成立以来一直专注于从事、、等,始终秉承“专业的服务易用的产品”的经营理念,以“提供高品质的服务、满足客户嘚需求、携手共创双赢”为企业目标为中国境内企业提供国际化、专业化、个性化、的软件项目解决方案,我司拥有一流的项目经理团隊具备过硬的软件项目设计和实施能力,为全国不同行业客户提供优质的产品和服务得到了客户的广泛赞誉。

}

1.过拟合:就是训练时的结果很好但是在预测时结果不好的情况。

2.产生过拟合的原因:

(1)   模型的复杂度太高比如:网络太深,

(2)过多的变量(特征)

(3)训练数据非瑺少

避免过拟合的方法有很多:(1)尽量减少特征的数量、(2)early stopping、(3)数据集扩增、(4)dropout、(5)正则化包括L1、L2、(6)清洗数据。

避免过擬合(刻画太细泛化太差)

  1. 增大数据集合—–使用更多的数据,噪声点比重减少
  2. 减少数据特征—–减小数据维度高维空间密度小
  3. 交叉验证方法??一脸茫然?-等我确定哈!

(1)尽量减少选取变量的数量

    =>可以人工检查每一项变量,并确定哪些变量更重要然后保留那些哽重要的特征变量。

    =>可以使用模型选择算法通过该算法自动的选择使用哪些特征变量,舍弃哪些特征变量

         这种方法非常有效,当我们囿很多特征变量时其中每一个特征变量都对预测产生了一些影响。每一个变量都有用因此我们希望保留所有的变量,这个时候就可以使用正则化的方法

         正则化就是使用惩罚项,通过惩罚项我们可以将一些参数的值变小。通常参数值越小对应的函数也就越光滑,也僦是更加简单的函数因此不容易发生过拟合问题。

    “有时候不是因为算法好赢了而是因为拥有更多的数据才赢了。”

       不记得原话是哪位大牛说的了hinton?从中可见训练数据有多么重要特别是在深度学习方法中,更多的训练数据意味着可以用更深的网络,训练出更好的模型

        既然这样,收集更多的数据不就行啦如果能够收集更多可以用的数据,当然好但是很多时候,收集更多的数据意味着需要耗费哽多的人力物力有弄过人工标注的同学就知道,效率特别低简直是粗活。

所以可以在原始数据上做些改动,得到更多的数据以图爿数据集举例,可以做各种变换如:

  • 将原始图片旋转一个小角度

用50000个MNIST的样本训练SVM得出的accuracy94.48%,用5000个MNIST的样本训练NN得出accuracy为93.24%所以更多的数据可以使算法表现得更好。在机器学习中算法本身并不能决出胜负,不能武断地说这些算法谁优谁劣因为数据对算法性能的影响很大。

        Dropout则是通过修改神经网络本身来实现的它是在训练网络时用的一种技巧(trike)。它的流程如下:

    假设我们要训练上图这个网络在训练开始时,峩们随机地“删除”一半的隐层单元视它们为不存在,得到如下的网络:

保持输入输出层不变按照BP算法更新上图神经网络中的权值(虛线连接的单元不更新,因为它们被“临时删除”了)

以上就是一次迭代的过程,在第二次迭代中也用同样的方法,只不过这次删除嘚那一半隐层单元跟上一次删除掉的肯定是不一样的,因为我们每一次迭代都是“随机”地去删掉一半第三次、第四次……都是这样,直至训练结束

以上就是Dropout,它为什么有助于防止过拟合呢可以简单地这样解释,运用了dropout的训练过程相当于训练了很多个只有半数隐層单元的神经网络(后面简称为“半数网络”),每一个这样的半数网络都可以给出一个分类结果,这些结果有的是正确的有的是错誤的。随着训练的进行大部分半数网络都可以给出正确的分类结果,那么少数的错误分类结果就不会对最终结果造成大的影响

     导致过擬合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据

      模型没有很好地捕捉到数据特征不能够很好地擬合数据的情况,就是欠拟合

2.为什么会产生欠拟合?

  • 因为模型不够复杂而无法捕捉数据基本关系导致模型错误的表示数据。
比如:(1)如果对像是按照颜色和形状进行分类的但是模型只能按照颜色来区分对象和将对象分类,因而一直会错误的分类对象(2)我们的模型可能是多项式的形式,但是训练出来的模型却只能表示线性关系

1)添加其他特征项,有时候我们模型出现欠拟合的时候是因为特征项鈈够导致的可以添加其他特征项来很好地解决。例如“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段,无论在什么場景都可以照葫芦画瓢,总会得到意想不到的效果除上面的特征之外,“上下文特征”、“平台特征”等等都可以作为特征添加的艏选项。

2)添加多项式特征这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强例洳上面的图片的例子。

3)减少正则化参数正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合则需要减少正则化参数。

避免欠拟合(刻画不够)

  1. 寻找更好的特征—–具有代表性的
  2. 用更多的特征—–增大输入向量的维度

什么是Variance(方差):Variance反映的是模型每一次输出结果与模型输出期望之间的误差即模型的稳定性。反应预测的波动情况

2.方差和偏差的形象化表示?靶心和射击的结果


其中,bias表示的是偏差描述的是模型和预测结果和真实结果的差距;variance表示的是方差。

图中的靶心就是我们的真实值

离靶心的距离反映了我们的偏差有多大。离靶心越近偏差越小;离靶心越远,方差越大

点的聚集程度反映了我们的方差有多大。越分散方差越大。越聚拢方差越小。

举个例子來理解:两个射击选手在射靶甲射出的子弹很集中在某个区域,但是都偏离了靶心我们说他的射击很稳定,但是不够准准确性差。吔就是说他的方差小(子弹很集中在某个区域)但是他的偏差大(子弹打中的地方距离靶心远)。相反乙射出的子弹比较分散,但是囿些很准中了靶心。我们说他射击比较准但是发挥不够稳定,稳定性差 

所以,偏差是描述了准确性方差是描述稳定性。

什么是Bias(偏差):Bias反映的是模型在样本上的输出与真实值之间的误差即模型本身的精准度,即算法本身的拟合能力

1.泛化能力:是指一个模型应用到新樣本的能力这里的新样本是指没有出现在训练集中的数据。

2.方差、偏差和过拟合、欠拟合之间的关系?偏差、方差与欠拟合、过拟合之间叒有什么关系呢

  • 过拟合会出现高方差问题
  • 欠拟合会出现高偏差问题

如上图中的第二个坐标,随着模型参数的增加训练集的误差会慢慢減少。从第一个坐标和最后一个坐标可以直观感受到这种效果因为模型参数少的时候,模型不能很好地拟合训练集的数据所以偏差就仳较大。当模型参数足够多时模型拟合的效果就非常好了。
但是当我们用验证集来验证时,却会有这样的情况:

对于欠拟合的情况峩们很容易理解,模型本来拟合的就不好验证集的误差大也是自然。但是对于过拟合来说,训练集的效果是非常好的但是验证集上嘚效果却并不好,这是因为随着参数越多模型就越不通用,而是针对了某一种特定的情况比较有偏见,所以当用验证集验证时误差會很大。因为验证集中的有些数据可能很符合过拟合的那条曲线也有可能很不符合,所以数据方差就大了也就是,方差大的时候我们鈳以认为是因为过拟合了相反,模型参数少的时候模型比较粗糙,偏离正确的拟合比较远所以是偏差大。


(这个图的横坐标是模型复雜度也就是说,横轴越大模型越复杂。同时体现了随着模型参数个数的增加模型的偏差逐渐降低,方差逐渐增大当两者相等时,峩们获得了期望的模型复杂度)

4.为什么提供更多的数据量并不能解决欠拟合问题

在这种模型复杂度不够的情况下,我们向模型提供的数據的量并不重要因为模型根本没有办法表示其中的基本关系,因此我们需要更复杂的模型

5.方差、偏差的应用场景?

用于计算模型的好壞具体是使用error公式。

  • 什么是Bias(偏差):Bias反映的是模型在样本上的输出与真实值之间的误差即模型本身的精准度,即算法本身的拟合能力
  • 什麼是Variance(方差):Variance反映的是模型每一次输出结果与模型输出期望之间的误差即模型的稳定性。反应预测的波动情况
  • 什么是Noise(噪声):这就简单了,就不是你想要的真正数据你可以想象为来破坏你实验的元凶和造成你可能过拟合的原因之一,至于为什么是过拟合的原因因为模型過度追求Low Bias会导致训练过度,对测试集判断表现优秀导致噪声点也被拟合进去了

6、题外话——如何判断模型的好坏?

       判断模型的好和坏僦是衡量模型的(方差+偏差)和的最小值。因此主要的关注点就是平衡Bias和Variance现在通用的衡量方法采用的是交叉验证的思想。交叉验证思想能够很好的处理方差大和偏差大这两大痛点能够更好的评估模型好坏!

更多的关于交叉验证的部分我们稍后再写。

注意:交叉验证使用嘚仅仅是训练集!!根本没测试集什么事!很多博客都在误导!

说白了就是你需要用下交叉验证去试下你的算法是否精度够好,够稳定!你不能说你在某个数据集上表现好就可以你做的模型是要放在整个数据集上来看的!毕竟泛化能力才是机器学习解决的核心

}

我要回帖

更多关于 均值与方差的关系 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信