偏差(Bias)和方差(Variance)——机器学习中的模型选择
目录
期望
在概率论和统计学中,数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。
- 离散型随机变量
离散型随机变量X的取值为,X对应取值的概率为
,则期望的计算公式为:
例子:
某城市有10万个家庭,没有孩子的家庭有1000个,有一个孩子的家庭有9万个,有两个孩子的家庭有6000个,有3个孩子的家庭有3000个。
则此城市中任一个家庭中孩子的数目是一个随机变量,记为X。它可取值0,1,2,3。
其中,X取0的概率为0.01,取1的概率为0.9,取2的概率为0.06,取3的概率为0.03。
则,它的数学期望为
,即此城市一个家庭平均有小孩1.11个,当然人不可能用1.11个来算,约等于2。
- 连续型随机变量
设连续性随机变量X的概率密度函数为f(x),且积分绝对收敛,则数学期望E(X)如下:
方差
方差在统计描述和概率分布中各有不同的定义,并有不同的公式。统计描述中,方差用来计算每一个变量(观察值)与总体均数之间的差异,不再细说。这里主要说明一下方差在概率分布的定义。
- 离散型随机变量
X是一个离散型,若存在,则称
为X的方差,记为D(X),Var(X),其中E(X)是X的期望值,X是变量值。可以看出,方差意为“变量值与其期望值之差的平方和”的期望值。
方差刻画了随机变量的取值X对于其数学期望E(X)的平均离散程度。若X的取值比较集中,则平均偏离程度低,方差D(X)较小,若X的取值比较分散,则平均偏离程度大,方差D(X)较大。
下面是方差的计算公式:
- 连续型随机变量
计算公式:
将上式展开后可得:
模型的方差和偏差
这里我们以回归任务理解方差和偏差。假设我们有很多个数据集,每个数据集中的样本都是从总体分布中抽样而得,即来自于同一个分布。对于其中一个特定的数据集D,学习算法得到的单模型为,则有:
- 期望预测(预测值的期望):由于对于不同的数据集D,学习到的模型都是不一样的,因此一个学习算法的期望预测如下,该值表示对于一个特定的样本
,不同单模型对该样本的预测值的平均值。
- 方差 (variance) :表示单模型的预测值对于预测值期望的平均离散程度,公式如下。由于这些单模型是有不同数据集训练而来的,因此方差也是衡量模型对不同数据集D的敏感程度,也可以认为是衡量模型的不稳定性。若方差大,则表示数据的微小变动就能导致学习出的模型产生较大差异。可能的情形是在训练集上拟合的很好,到了测试集上由于数据的改变致使准确率下降很多,这是典型的过拟合。
比上文中方差的公式
,这里实际上是将单模型的预测值f(x)视为随机变量,而其随机性来源于从同一个分布抽样得到的不同数据集。
- 偏差 (bias) :定义如下,表示模型的预测值的期望与真实值之间的差异。
- 期望泛化误差:定义误差为单模型对于样本
的预测值与真实值的差异:
,则期望泛化误差表达式如下,表示所有单模型对样本
预测值与真实值的误差平方的平均值。
为什么要给误差平方?因为我们在回归任务中最常用的就是损失函数就是均方误差:
继续对erro变换:
最后一项为0,继续化简最终得到:
过拟合
指的是模型在训练数据中表现得过于优越,而在测试集中表现不佳的现象。也就是说模型学习到了很多不必要的特征(比如噪声),泛化能力差。
产生过拟合的原因:
- 模型复杂
- 训练数据少
- 输入过多的变量(特征)
- 数据噪声大(使得模型学习到噪声特征)
解决过拟合的方法:
- 数据扩增
- 交叉验证
- 增加正则化项,L1L2正则化
- 降低模型复杂度
- 提前停止训练
- 采用集成学习,如bagging中的随机森林(随机选择样本、随机选择特征)
- 加入dropout层(主要用于神经网络)
- Batchnormalization层(主要用于神经网络)
欠拟合
欠拟合指的是模型对训练数据和测试数据都不能很好拟合的情况,并不能有效捕捉到数据的特征。
产生欠拟合的原因:
- 模型复杂度低
- 特征量少
解决欠拟合的方法:
- 减少正则化参数
- 增加模型复杂度,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强
- 增加特征量
- 集成学习boosting(GBDT)
与方差和偏差的关系
偏差:刻画的是模型预测输出与真实标记间的差别,偏差越大,模型的预测准确率越低。
方差:刻画的是模型预测输出间的离散程度,方差越小,模型的稳定性越好。
- 低偏差低方差时(左上),是我们所追求的效果,此时预测值正中靶心(最接近真实值),且比较集中(方差小)。
- 低偏差高方差时(右上),预测值基本落在真实值周围,但很分散,此时方差较大,说明模型的稳定性不够好。
- 高偏差低方差时(左下),预测值与真实值有较大距离,但此时值很集中,方差小;模型的稳定性较好,但预测准确率不高,处于“一如既往地预测不准”的状态。
- 高偏差高方差时(右下),是我们最不想看到的结果,此时模型不仅预测不准确,而且还不稳定,每次预测的值都差别比较大。
欠拟合时模型预测结果不准,因此偏差较大。过拟合时,由于模型对训练数据过于学习,当测试数据与训练数据略有不同,或者加入一点扰动,预测结果就会有较大的变化,此时方差较大。