机器学习_集成学习之偏差和方差

文章目录

  • 介绍
  • 偏差和方差——机器学习性能优化的风向标
  • 目标:降低偏差与方差
  • 数据集大小对偏差和方差的影响
  • 预测空间的变化带来偏差和方差的变化


介绍

集成学习,就是机器学习里面的协同作战。

如果训练出一个模型比较弱,又训练出一个模型还是比较弱,但是,几个不大一样的模型组合起来,很可能其效率会好过一个单独的模型。这个思路导出的随机森林、梯度提升决策树,以及XGBoost等算法,都是常用的、有效的、经常在机器学习竞赛中夺冠的“法宝”。

它的核心策略是通过模型的集成减少机器学习中的偏差(bias)和方差(variance)。

偏差和方差——机器学习性能优化的风向标

方差是从统计学中引入的概念,方差定义的是一组数据距离其均值的离散程度。而机器学习里面的偏差用于衡量模型的准确程度。

注:机器学习内部参数w和b中的参数b,英文也是bias,它是线性模型内部的偏置。而这里的 bias是模型准确率的偏差。两者英文相同,但不是同一个概念。

偏差评判的是机器学习模型的准确度,偏差越小,模型越准确。它度量了算法的预测与真实结果的离散程度,刻画了学习算法本身的拟合能力。也就是每次打靶,都比较靠近靶心。

方差评判的是机器学习模型的稳定性(或称精度),方差越小,模型越稳定。它度量了训练集变动所导致的学习性能变化,刻画了数据扰动所造成的影响。也就是每次打靶,不管打得准不准,击中点都比较集中。

目标:降低偏差与方差

低偏差和低方差,是我们希望达到的效果,然而一般来说,偏差与方差是鱼与熊掌不可兼得的,这被称作偏差-方差窘境(bias-variance dilemma )。

  • 给定一个学习任务,在训练的初期,模型对训练集的拟合还未完善,能力不够强,偏差也比较大。正是由于拟合能力不强,数据集的扰动是无法使模型的效率产生显著变化的——此时模型处于欠拟合的状态,把模型应用于训练集数据,会出现高偏差。
  • 随着训练的次数增多,模型的调整优化,其拟合能力越来越强,此时训练数据的扰动也会对模型产生影响。
  • 当充分训练之后,模型已经完全拟合了训练集数据,此时数据的轻微扰动都会导致模型发生显着变化。当训练好的模型应用于测试集,并不一定得到好的效果——此时模型应用于不同的数据集,会出现高方差,也就是过拟合的状态。

机器学习性能优化领域的最核心问题,就是不断地探求欠拟合-过拟合之间,也就是偏差 - 方差之间的最佳平衡点,也是训练集优化和测试集泛化的平衡点
机器学习_集成学习之偏差和方差_第1张图片
如图所示,如果同时为训练集和测试集绘制损失曲线,大概可以看出以下内容。

  • 在训练初期,当模型很弱的时候,测试集和训练集上,损失都大。这时候需要调试的是机器学习的模型,或者甚至选择更好算法。这是在降低偏差。

  • 在模型或者算法被优化之后,损失曲线逐渐收敛。但是过了一段时间之后,发现损失在训练集上越来越小,然而在测试集上逐渐变大。此时要集中精力降低方差。

因此,机器学习的性能优化是有顺序的,一般是先降低偏差,再聚焦于降低方差

数据集大小对偏差和方差的影响

通过调整数据集的大小来观测损失的情况,进而判定是偏差还是方差影响着机器学习效率。

这是因为,数据集越大,越能够降低过拟合的风险。数据集越大,训练集和测试集上的损失差异理论上应该越小,因为更大的数据集会导致训练集上的损失值上升,测试集上的损失值下降。

  • 如果随着数据集逐渐增大,训练集和测试集的误差的差异逐渐减小,然后都稳定在一个值附近。这说明此时模型的方差比较小。如果这个模型准确率仍然不高,需要从模型的性能优化上调整,减小偏差。

机器学习_集成学习之偏差和方差_第2张图片

  • 如果随着数据集的增大,训练集和测试集的误差的差异仍然很大,此时就说明模型的方差大。也就是模型受数据的影响大,此时需要增加模型的泛化能力。

预测空间的变化带来偏差和方差的变化

知道偏差大还是方差大,就知道应该把模型往哪个方向调整。

不同的模型,有不同的复杂度,其预测空间大小不同、维度也不同。一个简单的线性函数,它所能够覆盖的预测空间是比较有限的,其实也可以说简单的函数模型方差都比较低。这是好事儿。那么如果增加变量的次数,增加特征之间的组合,函数就变复杂了,预测空间就随着特征空间的变化而增大。再发展到很多神经元非线性激活之后组成神经网络,可以包含几十万、几百万个参数,它的预测空间维度特别大。这个时候,方差也会迅速增大。

简单的线性函数虽然方差低,但是偏差高。对于稍微复杂的问题,根本不能解决。那么只能用威力比较大的、覆盖面比较大的‘大杀器’来解决问题了。而神经网络就像是原子弹,一旦被发射,肯定能够把要打击的目标击倒。但是如何避免误伤无辜,降低方差,就又回到如何提高精度的问题了。这样,偏差一方差窘境就又出现了。

集成学习之所以好,是因为它通过组合一些比较简单的算法来保留这些算法低方差的优势。在此基础之上,它又能引入复杂的模型来扩展简单算法的预测空间。这样,我们就就理解为何集成学习是同时降低方差和偏差的大招。

集成学习算法有:
(1).Bagging:集成多个模型,以降低整体的方差
(2).Boosting:提升较弱的模型,以降低弱模型的偏差
(3).Stacking/Blending:利用基模型的预测结果,作为新特征训练新模型
(4).Voting/Averating:集成基模型的预测结果


学习机器学习的参考资料:
(1)书籍
利用Python进行数据分析
西瓜书
百面机器学习
机器学习实战
阿里云天池大赛赛题解析(机器学习篇)
白话机器学习中的数学
零基础学机器学习
图解机器学习算法

(2)机构
光环大数据
开课吧
极客时间
七月在线
深度之眼
贪心学院
拉勾教育
博学谷

你可能感兴趣的:(机器学习,机器学习,集成学习,人工智能)