先说为什么要来区别对比方差和偏差。在特定的模型下,模型误差的期望值可以分解为三个部分:样本噪音、模型预测值的方差、预测值相对真实值的偏差:
误差的期望值 = 噪音的方差 + 模型预测值的方差 + 预测值相对真实值的偏差的平方
具体意义可参看偏差(Bias)和方差(Variance)——机器学习中的模型选择

一、基本概念上的对比解释

1、偏差Bias:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据,对象是单个模型。
2、方差Variance:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散,对象是多个模型

在模型误差方面看,在忽略噪声的情况下,泛化误差可分解为偏差、方差两部分。
偏差:度量学习算法的期望预测与真实结果的偏离程度,也叫拟合能力。
方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动造成的影响。

二、两者的通俗解释对比

想象你开着一架黑鹰直升机,得到命令攻击地面上一只敌军部队,于是你连打数十梭子,结果有一下几种情况:
1.子弹基本上都打在队伍经过的一棵树上了,连在那棵树旁边等兔子的人都毫发无损,这就是方差小(子弹打得很集中),偏差大(跟目的相距甚远)。
2.子弹打在了树上,石头上,树旁边等兔子的人身上,花花草草也都中弹,但是敌军安然无恙,这就是方差大(子弹到处都是),偏差大(同1)。
3.子弹打死了一部分敌军,但是也打偏了些打到花花草草了,这就是方差大(子弹不集中),偏差小(已经在目标周围了)。
4.子弹一颗没浪费,每一颗都打死一个敌军,跟抗战剧里的八路军一样,这就是方差小(子弹全部都集中在一个位置),偏差小(子弹集中的位置正是它应该射向的位置)。

方差,是形容数据分散程度的,算是“无监督的”,客观的指标,偏差,形容数据跟我们期望的中心差得有多远,算是“有监督的”,有人的知识参与的指标。

三、从模型和数据集上来说两者

偏差描述的是模型倾向同类预测错误的程度,方差描述的是模型在做同类预测时出现的波动程度。这两个度量都与模型的泛化误差相关,两者值越小,对应的泛化误差也就越小。
从模型上来说,对于一个非线性分类问题而言(如XOR),简单的线性分类器(无维度空间映射)由于自身特性并不能较好地进行类别划分,模型会出现较大的偏差;而决策树模型作为非线性分类器,能较好的拟合训练样本,偏差值较小,但若模型过于拟合训练样本,测试样本出现了训练样本考虑不周的情况,则容易出现预测误差,即方差值较高。对于一个模型l而言,我们当然希望泛化误差越小越好,可以通过一些方法来减小上述的偏差和方差。例如,常见的random forest就是通过采样和融合多棵决策树来减小泛化误差的一种方法。
从数据集上来说,如果数据集小的话一般就估计不准偏差就大(数据少可能就会样本相对集中方差反而小),通过增大样本容量可以减小偏差,但是增大容量也许就会导致数据分布比较离散,相对应的方差也会随之增大,然后我们选择模型的时候一般会根据训练数据和目标来权衡方差和偏差,比如用最小化MSE就是结合了方差和偏差。

四、偏差-方差权衡( bias-variance tradeoff):

在一个实际模型中,Bias与Variance往往是不能兼得的。**模型过于简单时,容易发生欠拟合(high bias);模型过于复杂时,又容易发生过拟合(high variance)。**造成这种现象的根本原因是,我们总是希望试图用有限训练样本去估计无限的真实数据。当我们更加相信这些数据的真实性,而忽视对模型的先验知识,就会尽量保证模型在训练样本上的准确度,这样可以减少模型的Bias。但是,这样学习到的模型,很可能会失去一定的泛化能力,从而造成过拟合,降低模型在真实数据上的表现,增加模型的不确定性。相反,如果更加相信我们对于模型的先验知识,在学习模型的过程中对模型增加更多的限制,就可以降低模型的variance,提高模型的稳定性,但也会使模型的Bias增大。
一般这种权衡方法可采用交叉验证和根据相应的实际情况确定,没有完美解决办法。

五、其他

写这篇文章来源于知乎问题“用随机森林的方式能对逻辑回归优化吗?” 而引申出的偏差和方差。
有网友回答:

树的组合(ensemble of trees):树模型的特点,低偏差(bias),高方差(variance),通过
bagging,保持低偏差,降低模型方差,避免过拟合。 LR的组合:线性模型,相对树而言,高偏差,低方差,bagging
的作用其实有限,因为模型本来就很稳定了。
一个比方:一个每个人的观点差别不大的社会,投票做出的决定,一定和单独的个体做出的决定差不多。一个每个人有着千差万别的价值观的社会,投票做出的决定,也许比任何一个单独的人做出的决定更好。
所以,如果要走这条路,就必须保证每个 LR 都描述问题的不同维度,最后再放在一起投票。

理论上行得通 通过随机性(数据样本随机采样、输入属性随机采样)构建多个弱分类器(弱的LR,激活函数为sigmoid),
后面再加一层次级分类器。
相当于一个两层的神经网络,隐含层的输出为多个弱分类器的输出(注意一定是经过sigmoid后的概率输出,作为输入进入次级的分类器)。
因为引入了非线性的激活函数,模型比之前的LR(单层的神经网络)能力要强大一些。

实践意义不大
1、xgboost本身已经把boosting和rf的思想都考虑进去,增强模型复杂度(vc维大),同时通过多个参数避免overfitting
2、neurual network也类似 3、结论:你的这种想法,没有必要搞。即使搞,也搞不过xgb和neurual network.

需要注意的是:不管树模型还是线性模型都不一定就是强模型(低偏差高方差),或者弱模型(高偏差低方差)。一般看具体模型复杂度,如浅层的决策树也是弱模型。

六、参考资料

https://www.zhihu.com/question/57237795/answer/1191126455
https://www.zhihu.com/question/20448464
https://blog.csdn.net/CoderPai/article/details/80494230
https://blog.csdn.net/qq_30490125/article/details/52401773
http://scott.fortmann-roe.com/docs/BiasVariance.html

用来评估模型好坏的方差和偏差的区别对比相关推荐

  1. ISLR 读书笔记二:评估模型的准确性

    评估模型的准确性 MSE 偏差 VS 方差 分类问题 贝叶斯分类器 KNN 统计学习中,有一条天下没有免费的午餐定理:没有哪一个方法可以对任何数据集,都胜过其他任何方法.所以,在具体实践中,选择最好的 ...

  2. 机器学习如何评估模型结果的好坏

    所有事情都需要评估好坏,模型当然也需要!机器学习算法最终的目的就是生成模型,模型的评估有很多指标,主流的评估指标包括 准确率, 召回率 ,F1, AUC 曲线, ROC 曲线. 目录 一.评估指标的分 ...

  3. 模型优化的风向标:偏差与方差

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:机器学习算法那些事 前面讲到测试集的泛化性能是衡量学习模 ...

  4. R语言第八讲 评估模型之交叉验证法分析案例

    题目 评估Auto数据集上拟合多个线性模型所产生的测试错误率.Auto数据集是存在与ISLR程序包中的一个摩托车相关数据的数据集,读者可自行下载ISLR程序包,并将Auto数据集加载. 相关资料 交叉 ...

  5. 【火炉炼AI】机器学习006-用决策树回归器构建房价评估模型

    [火炉炼AI]机器学习006-用决策树回归器构建房价评估模型 (本文所使用的Python库和版本号: Python 3.5, Numpy 1.14, scikit-learn 0.19, matplo ...

  6. 个人信贷评估模型研究

    个人信贷评估模型研究 数据初探和可视化分析 介绍 一般信息统计 数据分布 好贷款与坏贷款 贷款类型 各地区发放的贷款 深入研究不良贷款 商业视角 了解业务的操作方面 按收入类别分析 评估风险 了解业务 ...

  7. 【火炉炼AI】机器学习012-用随机森林构建汽车评估模型及模型的优化提升方法

    [火炉炼AI]机器学习012-用随机森林构建汽车评估模型及模型的优化提升方法 [本文所使用的Python库和版本号]: Python 3.5, Numpy 1.14, scikit-learn 0.1 ...

  8. 算法模型好坏、评价标准、算法系统设计

    算法模型好坏的评价通用标准: 1.解的精确性与最优性.基于正确性基础上. 2.计算复杂度,时间成本. 3.适应性.适应变化的输入和各种数据类型. 4.可移植性. 5.鲁棒性.健壮性. 鲁棒性(robu ...

  9. python 交叉验证后获取模型_Python机器学习:6.2 K折交叉验证评估模型性能

    训练机器学习模型的关键一步是要评估模型的泛化能力.如果我们训练好模型后,还是用训练集取评估模型的性能,这显然是不符合逻辑的.一个模型如果性能不好,要么是因为模型过于复杂导致过拟合(高方差),要么是模型 ...

最新文章

  1. eclipse提示jre_给新手 Java 开发者的 7 点提示 | Linux 中国
  2. 如何通过DBLINK取REMOTE DB的DDL
  3. OC如何跳到系统设置里的各种设置界面
  4. cron 每周一执行_详解定时任务中的 cron 表达式
  5. rvm 安装后的补充工作:source $HOME/.profile
  6. jQuery EasyUI API 中文文档 - 组合表格(ComboGrid)
  7. Audiority Big Goat Mac(模拟建模复古失真插件)
  8. 删除密码设置对象(PSO)
  9. Android-7.0-Nuplayer-启动流程
  10. 暗黑2魔电西格玛攻略_听说你想刷爆怪物的狗头?或许可以试试《暗黑破坏神》类单机手游...
  11. java 图片 文字居中_完美实现文字图片水平垂直居中
  12. (SSM,JQUERY-EASYUI,MYSQL)快递物流系统
  13. 二、JavaScript 基础(上) - 章节课后练习题及答案
  14. 饿了么建生鲜开放平台 买菜业务要推至全国500城
  15. 无线局域网中iPhone无法访问IIS
  16. Ubuntu 16.04 一系列软件安装命令,包括QQ、搜狗、Chrome、vlc、网易云音乐安装方法...
  17. 用matlab实现蛇形,matlab蛇形机械手仿真建模
  18. 【Linux 内核笔记】进程管理
  19. 【谷歌地图--DirectionsSDK集成】
  20. python odoo pdf文件 位置获取

热门文章

  1. LabVIEW2020 使用“扫描字符串”函数将字符串中的数字转换为十进制数值
  2. Python官网的发现和收获
  3. 毕设之:联邦学习小总结(11.17)
  4. 已解决:Pyqt5用QTdesigner设置背景图正常,Pycharm不能显示
  5. 【ZYNQ】QSPI Flash 固化程序全攻略
  6. hadoop.hbase查询结果Result[] results = table.get(list)为null包空指针异常解决方案
  7. python将图片转成data:image/png;base64,XXXXX
  8. 磁盘阵列RAID理解
  9. 【数据结构】基本概念、大致内容
  10. 【知识整理】生成Android(安卓)app证书的keystore文件