模型的偏差、方

今天看书看到很多地方都讲到了方差和偏差的权衡,自己顿时感觉理解的不是很清晰,很多细节都想不起来了,所以整理一下,一位加深理解,二为往后的回顾,GO ! _

首先看一下有关模型误差相关方面的表述,下图是《统计学习方法》中关于误差的相关整理


在这里插入图片描述

偏差和方差

1. 总览

对于某个特定的模型来说,它的泛化误差(Generation Error)可以分为三部分:模型预测值的方差(variance)、预测值相对真实值的偏差(bias)、样本本身存在的噪声(noise),可以用下面的公式进行表示: E ( ( y − f ^ ( x ) ) 2 ) = σ 2 + V a r [ f ^ ( x ) ] + ( B i a s [ f ^ ( x ) ] ) 2 E((y-\hat f(x))^2)=\sigma^2+Var[\hat f(x)]+(Bias[\hat f(x)])^2 E((yf^(x))2)=σ2+Var[f^(x)]+(Bias[f^(x)])2

其中 B i a s [ f ^ ( x ) ] = E [ f ^ ( x ) − f ( x ) ] Bias[\hat f(x)]=E[\hat f(x)-f(x)] Bias[f^(x)]=E[f^(x)f(x)]

我们分别看一下泛化误差的这三个部分:
• 模型预测值相对真实值的偏差:直观上它是算法预测值和样本真实值之间的偏离程度,它反映了模型的拟合能力,偏差越大则模型的拟合能力越差,偏差越小的模型拟合能力越好,但是如果偏差小到一定程度则模型就可能会出现过拟合
• 模型预测值的方差:它反映模型在相同规模不同的训练集上的性能的波动情况,当模型具有低方差,则对于训练集变化的受影响较小,反之较大
• 样本本身存在的噪声:它是真实情况中不可避免的,因此它属于不可约减的误差(irreducible error),它反映了当前的训练集上任意的算法所能达到的额期望误差的下界,刻画了学习问题本身的难度

下面我们通过一个例子具体看一下:假设靶的中心是样本的真实值,左图镖的位置距离中心远,表示偏差大,但是位置相对集中,则方差较小;右图镖的位置相对左图距离中心更近,表示偏差较小,但是位置分散,表示方差较大。


在这里插入图片描述

相对于前面的公式表示,我们用图像化表示后就可以很直观的看到偏差、方差和噪声的情况。


在这里插入图片描述

2.公式推导

为了方便推导,先做如下的符号规定:
在这里插入图片描述

例如在回归模型中,定义的平方预测误差期望为: E r r ( x ) = E [ y − f ( x ; D ) 2 ] Err(x)=E[y-f(x;D)^2] Err(x)=E[yf(x;D)2]

定义在训练集D上模型 f 对样本 X 的预测值为f(x;D),那么f对X的期望预测如下: f ˉ ( x ) = E D [ f ( x ; D ) ] \bar f(x) = E_{D}[f(x;D)] fˉ(x)=ED[f(x;D)]

使用规模相同样本不同的训练集产生的方差为: v a r ( x ) = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] var(x)=E_{D}[(f(x;D)-\bar f(x))^2] var(x)=ED[(f(x;D)fˉ(x))2]

而其中噪声为真实标记与数据集中的实际标记间的偏差: ϵ 2 = E D [ ( y D − y ) 2 ] \epsilon^2=E_{D}[(y_{D}-y)^2] ϵ2=ED[(yDy)2]

期望预测值和真实标记的误差就是偏差: b i a s 2 ( x ) = ( f ˉ ( x ) − y ) 2 bias^2(x)=(\bar f(x)-y)^2 bias2(x)=(fˉ(x)y)2

如果将算法的期望泛化误差进行分解,可以得到如下的结果:


在这里插入图片描述

最后的三项分别是噪声的方差、模型预测值的方差、预测值相对于真实值的偏差

3.偏差-方差分解

从上面的分析我们可以看出,想让我们的模型同时拥有低偏差和低方差是不可能的,也被称为偏差-方差窘境。在模型训练的起始阶段,拟合效果差,则偏差较大,数据集的变化对于模型的影响也很小,表示方差较小;随着训练的深入,模型的拟合能力越来越强,偏差逐渐减小,方差逐渐增大;当模型训练的一定程度时,它的拟合能力非常强,这时的所有样本都可以很好的被拟合,偏差很小,但是训练集细微的变化都会对模型的效果产生很大的影响,方差就很大,则将发生过拟合。

一般来说:参数或者线性的机器学习算法一般都会有一个很高的偏差和一个很低的方差。但是,非参数或者非线性的机器学习算法一般都有一个很低的偏差和一个很高的方差。

所以,根据偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分的拟合数据,并且使方差较小,即使得数据扰动产生的影响小。故在实际使用中,我们需要在两者之间做一个权衡,使我们的模型效果达到最优。

4.参考:

Stanford机器学习课中关于这部分的讲解可见我的另一篇博客: Stanford机器学习-应用机器学习的建议

https://www.jianshu.com/p/8c7f033be58a

https://blog.youkuaiyun.com/weixin_40604987/article/details/79676066

https://segmentfault.com/a/1190000012461409

https://blog.youkuaiyun.com/simple_the_best/article/details/71167786

### 如何评估线性回归模型的 R 值 R 值(R²),又称决定系数,用于衡量线性回归模型数据的拟合优度。它的取值范围为 [0, 1],越接近于 1 表明模型数据的解释能力越强。 #### R 值的定义 R 值表示由自变量所解释的因变量变异的比例。具体而言,它是通过比较总平和(SStot)与残差平和(SSres)来计得出的: \[ R^2 = 1 - \frac{SS_{\text{res}}}{SS_{\text{tot}}} \] 其中, - \( SS_{\text{res}} \) 是残差平和,表示实际值与预测值之间的偏差和[^3]。 - \( SS_{\text{tot}} \) 是总平和,表示实际值与其均值之间的偏差和[^2]。 #### 计过程 以下是具体的计步骤: 1. **计总平和 (SStot)** 总平和反映了因变量的实际值相对于其平均值的变化程度。公式如下: \[ SS_{\text{tot}} = \sum_{i=1}^{n}(y_i - \bar{y})^2 \] 其中,\( y_i \) 是第 i 个样本的真实值,\( \bar{y} \) 是真实值的均值。 2. **计残差平和 (SSres)** 残差平和反映的是模型预测值与真实值之间的误差大小。公式如下: \[ SS_{\text{res}} = \sum_{i=1}^{n}(y_i - \hat{y}_i)^2 \] 其中,\( \hat{y}_i \) 是模型对第 i 个样本的预测值。 3. **代入公式求解 R²** 将上述两个量代入 R² 的公式即可得到最终的结果。 #### 使用 R 语言实现 R² 的计 以下是一个简单的 R 代码示例,展示如何手动计 R² 值: ```r # 示例数据 set.seed(123) x <- rnorm(100) y <- 2 * x + rnorm(100) # 构建线性回归模型 model <- lm(y ~ x) # 获取预测值 y_pred <- predict(model) # 实际值 y_true <- y # 计 SStot 和 SSres SStot <- sum((y_true - mean(y_true))^2) SSres <- sum((y_true - y_pred)^2) # 计 R² R_squared <- 1 - (SSres / SStot) print(paste("R-squared:", R_squared)) ``` 此代码展示了如何利用 `lm` 函数构建线性回归模型并手动计 R² 值[^2]。 #### 解读 R² 结果 - 如果 R² 接近 1,则表明模型能够很好地解释因变量的变异性。 - 如果 R² 较低(例如小于 0.5),则可能意味着模型未能充分捕捉数据中的模式,或者存在其他未考虑的因素影响了因变量。 需要注意的是,在多元线性回归中,随着自变量数量增加,即使新增加的变量对模型无显著贡献,也可能导致 R² 升高。因此,通常会使用调整后的 R² 来更准确地评价模型性能[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值