热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ISLR读书笔记十:模型选择——子集选择法(subsectselection)

模型选择——子集选择法前言最优子集法(bestsubsetselection)逐步选择法(stepwiseselection)


模型选择——子集选择法

  • 前言
  • 最优子集法(best subset selection)
  • 逐步选择法(stepwise selection)
    • 向前逐步选择
    • 向后逐步选择
    • 混合逐步选择
  • 如何选取最优
    • Cp,AIC,BIC,C_p,AIC,BIC,Cp,AIC,BIC, 调整后的 R2R^2R2
      • CpC_pCp
      • AICAICAIC
      • BICBICBIC
      • 调整后的 R2R^2R2 (adjusted R2R^2R2)
    • 交叉验证的误差


前言

这篇文章主要讲的是模型选择(model selection)中的一类方法:子集选择法(subsect selection),接下来两篇文章将介绍模型选择的其他两类方法:收缩法(shrinkage)和降维法(dimension reduction)。
首先为什么要进行模型选择呢?以线性回归模型为例,主要出于预测准确性(prediction accuracy)和模型解释度(model interpretability)两方面的考虑。


  1. 模型准确性
    nnn 没有远大于 ppp 时&#xff0c;利用最小二乘拟合得到的预测结果方差会很大&#xff1b;当 nn<p 时&#xff0c;最小二乘法失效&#xff0c;得不到唯一的参数估计。
  2. 模型解释度
    多元回归模型中的某些自变量&#xff0c;可能与因变量毫无关联&#xff0c;而最小二乘法得到的无关因素的参数系数未必刚好是 0&#xff0c;所以若加入这些无关因素&#xff0c;可能会影响模型解释度。

最优子集法&#xff08;best subset selection&#xff09;

算法&#xff1a;


  1. M0M_0M0 为空模型&#xff08;null model&#xff09;&#xff08;无自变量&#xff09;。该模型预测的结果均为样本均值。
  2. For k&#61;1,2,⋯,pk&#61;1,2,\cdots,pk&#61;1,2,,p&#xff1a;
    拟合所有CpkC_p^kCpk 个包含 kkk 个自变量的模型&#xff1b;
    从这 CpkC_p^kCpk 个模型选取最优的模型&#xff0c;记为 MkM_kMk 。这里的最优&#xff0c;在线性回归问题中&#xff0c;可以是最小 RSSRSSRSS 或者最大 R2R^2R2
  3. M0,M1,⋯&#xff0c;MpM_0,M_1,\cdots&#xff0c;M_pM0,M1,&#xff0c;Mp 中选取最优模型。选取标准可以是交叉验证的预测误差&#xff0c;或者 Cp(AIC),BIC,C_p(AIC), BIC,Cp(AIC),BIC,调整后的 R2R^2R2

优点&#xff1a; 简单

缺点&#xff1a; 受计算限制&#xff0c;ppp 较大时运算量太大。


逐步选择法&#xff08;stepwise selection&#xff09;

优点&#xff1a; 运算量较小
缺点&#xff1a; 未必能选取最佳模型


向前逐步选择

算法&#xff1a;


  1. M0M_0M0 为无自变量的空模型&#xff08;null model&#xff09;
  2. For k&#61;1,2,⋯,p−1k&#61;1,2,\cdots,p-1k&#61;1,2,,p1&#xff1a;
    拟合所有 p−kp-kpk 个在 MkM_kMk 基础上只增加一个自变量的模型&#xff1b;
    从这 p−kp-kpk 个模型选取最优的模型&#xff0c;记为 Mk&#43;1M_{k&#43;1}Mk&#43;1 。这里的最优&#xff0c;在线性回归问题中&#xff0c;可以是最小 RSSRSSRSS 或者最大 R2R^2R2
  3. M0,M1,⋯&#xff0c;MpM_0,M_1,\cdots&#xff0c;M_pM0,M1,&#xff0c;Mp 中选取最优模型。选取标准可以是交叉验证的预测误差&#xff0c;或者 Cp(AIC),BIC,C_p(AIC), BIC,Cp(AIC),BIC,调整后的 R2R^2R2

向后逐步选择

算法&#xff1a;


  1. MpM_pMp 为包含所有 ppp 个自变量的模型&#xff08;full model&#xff09;
  2. For k&#61;p,p−1,⋯,1k&#61;p,p-1,\cdots,1k&#61;p,p1,,1&#xff1a;
    拟合所有 kkk 个在 MkM_kMk 基础上只减少一个自变量的模型&#xff1b;
    从这 kkk 个模型选取最优的模型&#xff0c;记为 Mk−1M_{k-1}Mk1 。这里的最优&#xff0c;在线性回归问题中&#xff0c;可以是最小 RSSRSSRSS 或者最大 R2R^2R2
  3. M0,M1,⋯&#xff0c;MpM_0,M_1,\cdots&#xff0c;M_pM0,M1,&#xff0c;Mp 中选取最优模型。选取标准可以是交叉验证的预测误差&#xff0c;或者 Cp(AIC),BIC,C_p(AIC), BIC,Cp(AIC),BIC,调整后的 R2R^2R2

混合逐步选择

按向前逐步选择的方式给空模型增加自变量&#xff0c;每增加一个新的自变量&#xff0c;移除不再提供改进的自变量。


如何选取最优


Cp,AIC,BIC,C_p,AIC,BIC,Cp,AIC,BIC, 调整后的 R2R^2R2

Cp,AIC,BIC,C_p,AIC,BIC,Cp,AIC,BIC, 调整后的 R2R^2R2 都是用来评价模型好坏的统计量&#xff0c;在选择最优模型的时候进行参考。
Cp,AIC,BIC,C_p,AIC,BIC,Cp,AIC,BIC, 越小越好&#xff1b;调整后的 R2R^2R2 越接近 111 越好


CpC_pCp

Cp&#61;1n(RSS&#43;2dσ^2)C_p&#61;\frac{1}{n}(RSS&#43;2d\hat\sigma^2)Cp&#61;n1(RSS&#43;2dσ^2)
CpC_pCp是对测试MSE的估计&#xff0c;ddd 是自变量数量&#xff0c;σ^2\hat\sigma^2σ^2 是对误差项 ϵ\epsilonϵ 方差的估计。CpC_pCp 统计量在RSS的基础上增加了一个 2dσ^22d\hat\sigma^22dσ^2 的惩罚项来进行调整。


AICAICAIC

Akaike information criterion&#xff08;AIC&#xff09;
AIC&#61;1nσ^2(RSS&#43;2dσ^2)AIC&#61;\frac{1}{n\hat\sigma^2}(RSS&#43;2d\hat\sigma^2)AIC&#61;nσ^21(RSS&#43;2dσ^2)


BICBICBIC

Bayesian information criterion&#xff08;BIC&#xff09;
BIC&#61;1nσ^2(RSS&#43;log(n)dσ^2)BIC&#61;\frac{1}{n\hat\sigma^2}(RSS&#43;log(n)d\hat\sigma^2)BIC&#61;nσ^21(RSS&#43;log(n)dσ^2)


调整后的 R2R^2R2 &#xff08;adjusted R2R^2R2&#xff09;

adjustedR2&#61;1−RSS/(n−d−1)TSS/(n−1)adjusted R^2&#61;1-\frac{RSS/(n-d-1)}{TSS/(n-1)}adjustedR2&#61;1TSS/(n1)RSS/(nd1)


交叉验证的误差

上面四种统计量都是通过间接的方式来估计测试MSE&#xff0c;也可以用校验集或者交叉验证集上的得到误差来直接估计。交叉验证的预测误差最小的模型&#xff0c;效果最好。


推荐阅读
  • 我正在尝试使用 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 对于我当前的需求,我需要绘制一些我从mongodb中获取的数据的图表,并且我正在使用reactPo ... [详细]
  • 引子:Question:CanyoutellmewhatthedifferenceoftwoSQLstatementsatperformanceofexecution ... [详细]
  • 看过上回《厘清需求篇》,读者想到多少个解呢?本篇首先谈及一些基本分析,之后会按两种API设计(纯函数API和含状态的API), ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
author-avatar
没有1200
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有