NJU1healer的个人博客分享 http://blog.sciencenet.cn/u/NJU1healer

博文

正则化+过拟合/欠拟合+交叉验证

已有 3101 次阅读 2020-6-27 14:29 |个人分类:机器学习|系统分类:科研笔记

(一)正则化

正则化:https://www.jianshu.com/p/69b962945b2a

image.png

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

image.png


    两个高质量博客:回答为什么欠拟合高偏差,过拟合高方差?同时特别点出需要注意的问题。同时说明过拟合与欠拟合及相应的对策!

机器学习+过拟合和欠拟合+方差和偏差

总结:Bias(偏差),Error(误差),Variance(方差)及CV(交叉验证)

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

image.pngimage.png

案例:

image.png

image.png

image.png

模型中加入正则的意义

image.png

    注意:可行解变少时,模型变简单,避免过拟合!超参lambda越下,复杂模型就越被保留,可行解变多,模型复杂度就相对高!

方差和偏差的形象说明:

Screenshot.png   Screenshot11.png


通常来说过拟合的解决方法包括:

  • 减少特征的个数

  • 使用正则化,减少参数的权重

  • 增加数据量

(二)作为与模型选择的典型方法正则化一样,交叉验证也一种常用的模型选择方法。

特别注意:

  1.交叉验证,这是仅使用训练集衡量模型性能的一个方便技术,不用建模最后才使用测试集;

  2.Cross-validation 是为了有效的估测 generalization error(泛化误差) 所设计的实验方法,而generalization error=bias+variance

Screenshot33.png  Screenshot22.png

 (上左图:将原始数据分成K组(一般是均分),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标.K一般大于等于2,实际操作时一般从3开始取,只有在原始数据集合数据量小的时候才会尝试取2. 而K-CV 的实验共需要建立 k 个models,并计算 k 次 test sets 的平均辨识率。在实作上,k 要够大才能使各回合中的 训练样本数够多,一般而言 k=10 (作为一个经验参数)算是相当足够了。

 (上右图:每次的training_set 红色, validation_set白色 ,也就是说k=5的情况了

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

(1)简单交叉验证

    数据被分为训练集(70%)和测试集(30%),完成模型的训练和测试。

(2)K折交叉验证(一般K=5,10,15,20等)

    应用最多。将数据随机切分成K个互不相交、大小相同的子集,然后利用K-1个子集训练模型,余下的子集测试模型;将这个过程对可能的K种选择重复进行;最后选出K词测评中平均测试精度最小的模型。

    下例中,先经训练数据训练模型,然后通过验证数据检验模型在不同参数θ的精度,θ=0.1和θ=1分别得到由验证集获取的a1,a2,a3,a4的精度和b1,b2,b3,b4精度,分别平均比较大小,从而确定θ的取值。

11.jpg

111.jpg

   12.jpg

image.png

image.png

(3)留一法(Leave one out)--K折交叉验证的特例

    下例中假设有12个样本,验证集只选1个样本,K=N。此处K=12.

image.png


参考:https://www.bilibili.com/video/BV164411b7dx?p=62

       点滴分享,福泽你我!Add oil!




https://wap.sciencenet.cn/blog-3428464-1239563.html

上一篇:关于公司名称的英文缩写
下一篇:基准(Baseline)
收藏 IP: 211.162.81.*| 热度|

1 段含明

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

全部作者的其他最新博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-3-29 06:40

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部