作者:Jason Browniee

翻译:张若楠

校对:林鹤冲

本文长度为2800字,建议阅读8分钟

本文介绍了自由度的概念,以及如何判断统计学模型和机器学习模型中的自由度。

标签:数据处理

自由度是统计和工程学的重要概念,它通常用于总结在人们在计算样本统计或统计假设检验统计量时所使用的数据量。在机器学习中,自由度可以指模型中的参数数量,例如线性回归模型中的系数数量或深度学习神经网络中的权重数量。

其中值得关注的地方在于,如果机器学习模型中存在过多的自由度(即模型参数),那么这个模型将会过拟合训练集,这是统计学上的普遍认识。可以通过使用正则化技术来克服这种问题,比如正则化线性回归,以及深度学习神经网络模型中常用的各种正则化手段。

在本文中,你将进一步了解统计学和机器学习中的自由度。阅读这篇文章后,你会认识到:

  • 自由度通常表示一个模型系统的起控制作用的因子数。

  • 在统计学中,自由度是用于计算某个统计量的数据大小。

  • 在机器学习中,自由度是模型参数的数量。

让我们开始吧。

概览

本文分为以下三部分:

一、什么是自由度

二、统计学中的自由度

三、机器学习中的自由度

  1. 线性回归模型自由度

  2. 线性回归误差自由度

  3. 线性回归总自由度

  4. 负自由度

  5. 自由度与过拟合

自由度

自由度表示的是一个系统、模型或一个计算中的控制因子数。每个可以变换的独立参数都是d维空间中的一个维度,这个d维空间定义了可能影响系统的值的范围。某一个观测值或样本点就是该空间中的一个单独点。

在数学上,自由度通常用希腊字母ν表示,看起来像小写的“ v”。也可以缩写为“ d.o.f”、“ dof”、“ d.f.”,或直接写作“ df”。自由度是统计学和工程学中的术语,也通用于机器学习。

统计学中的自由度

在统计中,自由度是用于计算一个统计量时,所用的一系列数值中可以变换的个数。

自由度:大致来说,就是计算统计所需的最少数据量。实际上,它是一个或多个数字,来近似数据集中观测值的数量,从而确定统计显着性。

---《Statistics in Plain English》,2010年第三版P60

它的计算方法是:计算统计量时使用的独立值的数量减去所计算的统计量的个数,即:

自由度 = 独立值的数量 – 统计数量

例如我们有50个独立样本,希望计算样本的统计量,比如均值。我们在计算中使用了全部50个样本,并且只有一个统计量,因此在这种情况下,均值的自由度计算为:

自由度 = 独立值的数量–统计数量

自由度 = 50 – 1

自由度 = 49

自由度通常是数据分布和统计假设检验中需要重点考虑的因素。例如,通常有针对不同自由度查询临界值的表格(相比起直接计算统计数据,既简单又常用)。以上是统计学中的自由度,那么对于数据拟合的模型(例如在机器学习模型)又如何呢?

机器学习中的自由度

在预测建模中,自由度通常是指模型中从数据估计的参数数量。这可以涵盖模型的系数以及用于模型误差计算的数据。

理解这一点的最佳例子是线性回归模型。

线性回归模型中的自由度

下面考虑数据集中有两个输入变量的线性回归模型。对于每个输入变量,我们将在模型中给定一个系数,也就是说该模型将具有两个参数。

该模型如下所示,其中x1和x2是输入变量,beta1和beta2是模型参数。

yhat = x1 * beta1 + x2 * beta2

该线性回归模型具有两个自由度,因为它有两个参数必须从训练数据集中估计得到。在数据中再增加一列(增加一个输入变量)将为模型增加一个度自由度。

模型自由度 = 根据数据估算的参数数量

人们通常根据模型训练的参数数量来表达一个模型的复杂程度。例如,具有两个参数的线性回归模型的复杂度等于自由度,在这种情况下为2。相对于较高复杂度的模型,我们通常更喜欢较低复杂度的模型。简单的模型通常更有普适性。

自由度是对模型估计多少参数的解释,也是对线性回归模型的复杂度的衡量

— P71,应用预测建模 (2013)

线性回归误差的自由度

训练集的数据量很重要,并且会影响回归模型的总体自由度。

假设使用包含100个样本的训练集拟合线性回归模型的系数,通过最小化模型预测值与实际值之间的误差来拟合模型。考虑该模型的误差时,误差值对于模型训练集的每一个样本具有一个自由度,同时需要减去参数的个数。

在这种情况下,模型误差的参数个数为100减2,即98个自由度。

  • 误差自由度 = 样本数量 - 参数数量

  • 误差自由度 = 100 - 2

  • 误差自由度 = 98

在模型分析的报告中通常要提及线性模型的误差以及其误差自由度是有益的,或者至少可以汇报训练数据中的样本量,以便确定模型误差的自由度。

线性回归的总体自由度

线性回归模型的总体自由度就是模型自由度与模型误差自由度的和。

  • 线性回归自由度 = 模型自由度+模型误差自由度

  • 线性回归自由度 = 2 + 98

  • 线性回归自由度 = 100

通常,自由度等于用于训练集的样本量。现在仍然考虑一个包含100个样本的数据集,但是假设现在我们有70个输入变量。这意味着该模型现在有70个拟合的参数。因此,模型误差将为30 (100 – 70 ) 自由度。

而模型的总自由度仍等于样本量,即70 + 30 = 100。

负自由度

当我们的数据集列多于行时会发生什么?

例如,我们可能有100行数据和10000个变量,例如100位患者的基因标记。这种情况下,线性回归模型将具有10000个参数,这意味着该模型将具有10000个自由度。

我们可以如下计算模型误差的自由度:

  • 模型误差的自由度 = 样本量 – 参数量

  • 模型误差自由度 = 100 – 10000

  • 模型误差自由度 = -9900

我们可以如下计算总自由度:

  • 线性回归自由度 = 模型自由度 + 模型误差自由度

  • 线性回归自由度 = 10000 + (–9900)

  • 线性回归自由度 = 100

该模型仍具有100个总自由度,但是模型误差具有负的自由度。负自由度是有效的。这表明我们计算出的统计量多于我们有的变量。在这种情况下,模型中的参数要多于要训练集样本量。这就是所谓的p >> n,即参数远大于样本量。

自由度和过拟合

当我们的参数量比样本量大时,模型就存在过拟合训练集的风险。如果我们将模型中的每个系数都视为一个控制点就很容易理解。如果在模型中的控制点多于观察点,则理论上我们可以通过调参来百分百正确的预测实际值。过度学习训练集的细节,从而降低了准确预测新数据的性能,这就是过拟合的定义。

统计学家们普遍担忧深度学习神经网络模型容易过拟合。深度学习模型通常有比样本量更多的参数(模型权重)。如果按照我们对线性模型的理解,这是很可能过拟合的。然而,通过仔细选择模型架构和采用正则化技术,可以防止它们过度拟合并保持较低的误差。

此外,在深度模型中,有效自由度可以与模型中参数的数量分开讨论。

如我们所述,对于简单的分类模型,自由度等于模型中的参数数量。在深度网络中,自由度通常远小于模型中参数的数量,深度网络往往有较小的自由度。

---《深度神经网络的自由度》2016

因此,统计学家和机器学习从业人员开始倾向于不再使用自由度来表示模型复杂性,以及不用其并判断是否会过拟合。

对于大多数应用统计学家来说,拟合过程的自由度是其模型复杂度或对数据过拟合可能性的代名词。[…]而我们认为恰恰相反,模型的复杂性和自由度或许并没有很强的对应关系。

---《有效自由度:存在缺陷的指标》2013

总结

在本文中,你了解了统计和机器学习的自由度,要点如下:

  • 自由度通常表示一个系统中的控制点数。

  • 在统计中,自由度是用于计算统计量的样本个数。

  • 在机器学习中,自由度是模型参数的数量。


如您想与我们保持交流探讨、持续获得数据科学领域相关动态,包括大数据技术类、行业前沿应用、讲座论坛活动信息、各种活动福利等内容,敬请扫码加入数据派THU粉丝交流群,红数点恭候各位。

编辑:于腾凯

校对:林亦霖

译者简介

张若楠,UIUC统计研究生毕业,南加州传媒行业data scientist。曾实习于国内外商业银行,互联网,零售行业以及食品公司,喜欢接触不同领域的数据分析与应用案例,对数据科学产品研发有很大热情。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

独家 | 浅析机器学习中的自由度相关推荐

  1. 浅析机器学习中的自由度

    作者:Jason Browniee 翻译:张若楠 校对:林鹤冲 本文长度为2800字,建议阅读8分钟 本文介绍了自由度的概念,以及如何判断统计学模型和机器学习模型中的自由度. 标签:数据处理 自由度是 ...

  2. 独家 | 在机器学习中利用统计插补来处理缺失值(附代码)

    作者:Jason Brownlee 翻译:吴振东 校对:冯羽 本文约4500字,建议阅读10分钟 本文以病马数据集为例,帮助你了解在机器学习领域如何利用统计策略来处理缺失值,对代码进行了较为详细的讲解 ...

  3. 独家 | 机器学习中的四种分类任务(附代码)

    作者:Jason Brownlee 翻译:陈丹 校对:杨毅远 全文约4400字,建议阅读18分钟 本文为大家介绍了机器学习中常见的四种分类任务.分别是二分类.多类别分类.多标签分类.不平衡分类,并提供 ...

  4. 独家 | 一文读懂机器学习中的贝叶斯统计学

    作者:Matthew Stewart, PhD Researcher 翻译:吴金笛 校对:丁楠雅 本文约4300字,建议阅读15分钟. 本文主要是向新手介绍贝叶斯方法并将其与频率方法进行比较. 你有没 ...

  5. 独家 | 一文解析统计学在机器学习中的重要性(附学习资源)

    作者:Jason Brownlee 翻译:陈之炎 校对:万文青 本文共2400字,建议阅读10分钟. 本文介绍为什么统计对于通用应用和机器学习如此重要,并大致了解各种可用的方法. 统计是一组工具,您可 ...

  6. 机器学习中的特征工程——分类变量的处理

    出品 | CDA数据分析研究院,转载需授权 文章目录 分类变量 概念 判断 类型 少类别分类变量处理方法 独热编码(One-hot encoding) 虚拟编码(Dummy coding) 效应编码( ...

  7. MIT18.065 数据分析、信号处理和机器学习中的矩阵方法-学习笔记

    文章目录 MIT18.065 数据分析.信号处理和机器学习中的矩阵方法 Lecture 1 The Column Space of A Contains All Vectors Ax A=CR A=C ...

  8. 机器学习中的过拟合与解决办法

    什么是过拟合 对于机器学习项目而言,过拟合(overfitting)这个问题一般都会遇到.什么是过拟合呢? 维基百科: 在统计学中,过拟合现象是指在拟合一个统计模型时,使用过多参数.对比于可获取的数据 ...

  9. 机器学习中的判别式模型和生成式模型

    首发于人工智能 写文章 机器学习中的判别式模型和生成式模型 Microstrong 微信公众号:Microstrong,人工智能算法工程师 已关注 78 人赞同了该文章 目录: 基本概念 用例子说明概 ...

最新文章

  1. 飞桨第四节七日cv经典网络 2020.4.3
  2. OpenCV —数据持久化: FileStorage类的数据存取操作与示例
  3. strcpy和memcpy的区别?
  4. 如何限制SELECT-OPTIONS的选择屏幕的OPTION
  5. 中国石油计算机第二次在线作业,中国石油大学(北京)计算机应用基础第二次在线作业1教程.docx...
  6. android studio 65536错误的解决
  7. JVM(2)--一文读懂垃圾回收
  8. Android中让Service被关闭后再重新启动
  9. 反应堆模式最牛的那篇论文--由solidmango执笔翻译
  10. 库论计量计算电池容量
  11. Fiddler设置服务代理后手机不能上网的问题
  12. linux kde磁盘扫描,在KDE桌面中使用Krusader进行更好的文件管理 | MOS86
  13. python调用百度AI----文字识别
  14. c++11:std::chrono::time_point、time_t、std::localtime、std::gmtime、std::chrono::steady_clock
  15. vue中的路由守卫(导航守卫)
  16. 小生云服务器,HobitLab#2--云服务器的有效利用之搭建tiny tiny RSS
  17. 你告诉我,读书没有用
  18. 拨开云雾学习之计算机漫游
  19. P4828 Nagisa loves Tomoya
  20. RemoteView设置高度

热门文章

  1. mysql表文件被删_mysql表物理文件被误删的解决方法
  2. JSFL元件类型判断 转载于 https://blog.csdn.net/linking530/article/details/8364600
  3. 极光大数据:00后王者大军来袭 荣耀手机偏偏独得恩宠
  4. Kotlin尾递归优化
  5. nginx前端根据$remote_addr分发方法
  6. 005-Python之列表,元组,字符串,bytes及bytearray共有操作
  7. Oracle 存储过程之通用分页查询
  8. CentOS7+MySQL/MariaDB+Galera+HAProxy+Keepalived构建高可用数据库集群
  9. 程序员,应该掌握的英语词汇
  10. ASP.NET 2.0用户管理数据库的注册