热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

你真的理解机器学习中偏差方差之间的权衡吗?

作者:chen_h微信号&QQ:862251340微信公众号:coderpai简书地址:http:www.jianshu.c

作者:chen_h
微信号 & QQ:862251340
微信公众号:coderpai
简书地址:http://www.jianshu.com/p/f143...


我认为对偏差 - 方差之间的权衡判读对学习机器学习是非常重要的。那么为什么这么说呢?因为这个现象的背后是所有参数,性能和几乎所有机器学习模型的深层原因。如果你能很深刻的理解这个,我保证你能很好的理解机器学习的每一个模型。

图片描述

所以,我们就不浪费时间在无聊的介绍中,直接深入挖掘吧。理论讲解可能有一点枯燥,但我希望你能耐心看完本文。

机器学习中的偏差 - 方差之间的权衡

机器学习全部是关于给定输入数据(X)和给定输出数据(Y),然后去寻找一个最佳映射函数(F),这个映射函数通常也被叫做目标函数。

任何机器学习算法的预测误差可以分解为三部分,即:偏差误差+方差误差+不可约的误差(对于给定的模型,我们不能进一步减少的误差)。在这个文章中,我们将重点来讨论机器学习中的前两个误差。我们按照如下目录来进行讲解:

1)偏差误差;

2)方差误差;

3)偏差 - 方差之间的权衡;

4)一些想法的总结;

1. 偏差误差

用简单的话来说,这个误差是由于简单的假设所造成的,因为我们的假设越简单,那么我们的模型更加容易去训练。

一般而言,参数化算法具有较高的偏差,使得学习速度非常快,而且非常容易去理解,但是通常不太灵活。

注意:对于参数化算法和非参数化算法之间的区别,简单来说,参数化算法对数据进行参数化,形成很多的特征,这种方法训练速度非常快,而且也不需要很多的数据,但是他不是很灵活。非参数化算法对目标函数做出很少或者根本不做任何假设,但是它需要更多的数据,训练速度非常慢,模型复杂度非常高,但是模型非常强大。

低偏差:对目标函数提出更少的假设;

高偏差:对目标函数提出更多的假设;

低偏差模型例子:KNN 和 SVM;

高偏差模型例子:线性回归和逻辑斯特回归;

2. 方差误差

1)如果我们使用不同的数据去训练同一个模型,那么最后我们得到的目标函数估计也是会改变的。

2)目标函数是由机器学习的训练数据所估计得到的,所以我们期望训练数据拥有一定的方差。理想情况下,我们不希望目标函数从一个训练数据集到另一个训练数据集有太大的变化,也就是说我们的算法需要很好的从训练数据中找到一些映射的特征关系,这样可以保证不同训练集都有一个差不多的目标函数。

低方差:随着训练数据集的变化,对目标函数估计值的变化非常小;

高方差:随着训练数据集的变化,对目标函数估计值的变化非常大;

一般而言,具有很大灵活性的非参数学习算法都具有很高的方差。

高方差例子:KNN 和 SVM。

3. 偏差 - 方差之间的权衡

在上面的例子中我们可以看到一个趋势:参数或者线性的机器学习算法一般都会有一个很高的偏差和一个很低的方差。但是,非参数或者非线性的机器学习算法一般都有一个很低的偏差和一个很高的方差。所有,我们需要在这两者之间找到一个平衡点,来优化我们的算法。

比如,KNN 算法有很低的偏差和很高的方差,但是我们可以通过调整 k 的值来改变偏差和方差之间的权衡关系,从而达到一个比较平衡的状态。

因此,我们增加偏差会导致方差的减少,同理,我们增加方差会导致偏差的减少。但在实践中,我们无法去计算真正的偏差和方差值,因为我们不知道实际的目标函数。但是,作为一种方法,偏差和方差为我们提供了一种去判断机器学习算法性能的方法。


图片描述

4. 一些想法的总结

1)机器学习是去找到一个映射函数(F),这个函数也经常被称之为目标函数;

2)偏差是模型所做的简化假设,使得目标函数更加容易求解;

3)方差是在给定不同训练数据集的情况下,目标函数估计值所改变的量;

4)权衡是去调整一些参数使得偏差和方差之间相对平衡;


作者:chen_h
微信号 & QQ:862251340
简书地址:http://www.jianshu.com/p/f143...

CoderPai 是一个专注于算法实战的平台,从基础的算法到人工智能算法都有设计。如果你对算法实战感兴趣,请快快关注我们吧。加入AI实战微信群,AI实战QQ群,ACM算法微信群,ACM算法QQ群。长按或者扫描如下二维码,关注 “CoderPai” 微信号(coderpai)
图片描述


图片描述



推荐阅读
  • 本周三大青年学术分享会即将开启
    由雷锋网旗下的AI研习社主办,旨在促进AI领域的知识共享和技术交流。通过邀请来自学术界和工业界的专家进行在线分享,活动致力于搭建一个连接理论与实践的平台。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 本题要求实现一个名为fun的函数,该函数的功能是从给定的字符串s中移除所有ASCII码为偶数值的字符,并将剩下的字符组成的新字符串存储在由t指向的数组中。 ... [详细]
  • 知识图谱与图神经网络在金融科技中的应用探讨
    本文详细介绍了融慧金科AI Lab负责人张凯博士在2020爱分析·中国人工智能高峰论坛上的演讲,探讨了知识图谱与图神经网络模型如何在金融科技领域发挥重要作用。 ... [详细]
  • AI炼金术:KNN分类器的构建与应用
    本文介绍了如何使用Python及其相关库(如NumPy、scikit-learn和matplotlib)构建KNN分类器模型。通过详细的数据准备、模型训练及新样本预测的过程,展示KNN算法的实际操作步骤。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 本文探讨了在AspNetForums平台中实施基于角色的权限控制系统的方法,旨在为不同级别的用户提供合适的访问权限,确保系统的安全性和可用性。 ... [详细]
  • 本文旨在探讨Swift中的Closure与Objective-C中的Block之间的区别与联系,通过定义、使用方式以及外部变量捕获等方面的比较,帮助开发者更好地理解这两种机制的特点及应用场景。 ... [详细]
  • 新型量子内核助力机器学习分类
    国际科研团队开发出一种创新的量子机器学习分类方法,利用非线性量子内核显著提升了分类精度,为未来量子计算技术的发展开辟了新路径。 ... [详细]
  • 本文探讨为何Request对象的外观设计被认为是精妙的,重点在于其如何利用门面模式确保数据安全,同时保持系统的高效交互。 ... [详细]
  • 解析Java虚拟机HotSpot中的GC算法实现
    本文探讨了Java虚拟机(JVM)中HotSpot实现的垃圾回收(GC)算法,重点介绍了根节点枚举、安全点及安全区域的概念和技术细节,以及这些机制如何影响GC的效率和准确性。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
author-avatar
holy190
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有