机器学习基础(三): 模型评估与选择 - 方差与偏差

前言

  • 本笔记是笔者学习西瓜书所做笔记,转载请附本文链接及作者信息。
  • 有问题欢迎在交流区探讨学习,QQ:761322725
  • 码字不易,好心人随手点个赞👍
  • 机器学习中如何考量算法模型的泛化能力是非常重要的内容,影响着模型在实际环境下的使用。
  • 偏差-方差分解工具(bias-variance decomposition)是解释模型泛化能力的重要工具

符号定义

x:测试样本
D:训练集
f(x;D):基于训练集得到的模型对测试集的预测结果
y:样本x的真实标记
y_D:样本x在数据集上的标记

方差-偏差

泛化能力关注模型在不同数据集上的表现,因此使用数量相同的不同训练集进行模型学习训练,(回归任务)最后预测结果的期望是:

\bar{f}(x)=\mathbb{E}_D(f(x;D))
即不同训练结果的平均值

不同数据训练所产生的方差为:
var(x)=\mathbb{E}_D[(f(x;D)-\bar{f}(x))^2]

噪声:\varepsilon=\mathbb{E}[(y-y_D)^2]
反映由于数据标记的错误引起的噪声

偏差:反映真实标记与实际预测的差别
bias^2(x)=(y-f(x))^2

分解

考察算法所期望的泛化误差:
\mathbb{E}(f;D)=\mathbb{E}_D[(f(x;D)-y_D)^2]
=\mathbb{E}_D[(f(x;D)-\bar{f}(x)+\bar{f}(x)-y_D)^2]
=\mathbb{E}_D[(f(x;D)-\bar{f}(x))^2]+\mathbb{E}_D[(\bar{f}(x)-y_D)^2]+\mathbb{E}_D[2(\bar{f}(x)-y_D)(f(x;D)-\bar{f}(x))]

\color{red}{\bar{f}(x)=\mathbb{E}_D(f(x;D))}所以最后一项=0

=\mathbb{E}_D[(f(x;D)-\bar{f}(x))^2]+\mathbb{E}_D[(\bar{f}(x)-y_D)^2]
=\mathbb{E}_D[(f(x;D)-\bar{f}(x))^2]+\mathbb{E}_D[(\bar{f}(x)-y+y-y_D)^2]

//拆分操作

=\mathbb{E}_D[(f(x;D)-\bar{f}(x))^2]+ \mathbb{E}_D[(\bar{f}(x)-y)^2]+\mathbb{E}_D[(y-y_D)^2]

+\mathbb{E}_D[2(y-y_D)(\bar{f}(x)-y)]
// 假设噪声期望为0 ,最后一项为0
=\mathbb{E}_D[(f(x;D)-\bar{f}(x))^2]+ \mathbb{E}_D[(\bar{f}(x)-y)^2]+\mathbb{E}_D[(y-y_D)^2]

\color{red}{=var(x)+\varepsilon+bias^2(x)}

即泛化误差可以分解为\color{red}{偏差、方差、与噪音之和}

偏差-方差的关系及示例

  • 偏差度量模型本身的拟合能力,刻画期望预测与真实值的偏差

  • 方差度量模型对数据扰动的反映情况,刻画数据扰动对模型的影响

  • 噪音则是学习任务的下限,描述问题任务本身的难度

从上述分析可以看出,偏差和方差是一对相互冲突的量,存在"偏差-方差窘境"

为了模型效果更好,往往会多次训练,使得偏差更小;然而却容易过拟合,使得抗数据扰动能力不足,方差偏大
而训练次数比较小时,模型拟合能力不足,数据的扰动不足以让模型引起变化,从而方差偏小,偏差偏大

关系图

举例说明:
随机森林RF与xgboost:

  • RF随机选择划分特征集,构建树,使得模型抗数据扰动能力很强,方差很小;而由于学习使用的数据不全,拟合能力不强,偏差很大;
    因此RF需要使用强学习器,设置树的深度很大,以提高拟合能力(偏差大,方差小)
  • Xgboost则存在方差大、偏差小的情况,对数据拟合能力很强,往往使用弱学习器,树的深度较浅,减少过拟合的可能性

总结

偏差-方差工具是非常有效的模型泛化能力解释工具,在今后的学习可以多使用该基础原理进行分析

参考资料

周志华.《机器学习》

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容