热门标签 | 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)
图片描述


图片描述



推荐阅读
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 随着生活节奏的加快和压力的增加,越来越多的人感到不快乐。本文探讨了现代社会中导致人们幸福感下降的各种因素,并提供了一些改善建议。 ... [详细]
  • Python中HOG图像特征提取与应用
    本文介绍如何在Python中使用HOG(Histogram of Oriented Gradients)算法进行图像特征提取,探讨其在目标检测中的应用,并详细解释实现步骤。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  •   上一篇博客中我们说到线性回归和逻辑回归之间隐隐约约好像有什么关系,到底是什么关系呢?我们就来探讨一下吧。(这一篇数学推导占了大多数,可能看起来会略有枯燥,但这本身就是一个把之前算法 ... [详细]
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社区 版权所有