ISLR系列:(4.3)模型选择 PCR & PLS
Linear Model Selection and Regularization
此博文是 An Introduction to Statistical Learning with Applications in R 的系列读书笔记,作为本人的一份学习总结,也希望和朋友们进行交流学习。
该书是The Elements of Statistical Learning 的R语言简明版,包含了对算法的简明介绍以及其R实现,最让我感兴趣的是算法的R语言实现。
【转载时请注明来源】:http://www.cnblogs.com/runner-ljt/
Ljt 勿忘初心 无畏未来
作为一个初学者,水平有限,欢迎交流指正。
前两小节介绍的模型选择方法,要么是选择全体自变量的一个合适子集,要么是使得某些自变量的回归系数收缩为0.这两种方法都是建立
在初始自变量集上,而本小节将要介绍的主成分分析(PCR)和偏最小二乘回归(PLS)是将初始自变量转化为新的变量进行回归的方法。
PCR是一种非监督学习方法,能够有效的降低自变量的维数,消除多重共线性的影响。
PLS是一种新型的多元统计数据分析方法,近十年来,它在理论、方法和应用方面都得到了迅速的发展。密西根大学的弗耐尔教授称偏最小
二乘回归为第二代回归分析方法。不同于PCR,PLS为一种监督式的学习方法,其目的是既找到能够解释自变量同时也能够解释因变量的方向。
偏最小二乘回归=多元线性回归分析+典型相关分析+主成分分析。
PLS有以下优点:
(1)PLS是一种多因变量对多自变量的回归建模方法
(2)能够在自变量存在严重多重共线性的情况下进行回归建模
(3)允许在样本量少于自变量个数的情况下进行建模
(4)最终模型包含所有自变量,易于辨别系统信息和噪声,自变量的回归系数便于解释
PCR & PLS
pcr(formula,data,scale=F,validation = c("none", "CV", "LOO"))
pls(formula,data,scale=F,validation = c("none", "CV", "LOO"))
validation:验证方法 CV: 10折交叉验证 ; LOO :留一验证
输出结果: CV score : the root mean squared error 均方根误差/标准误差
the percentage of variance explained
validationplot(object,val.type=c('RMSEP','MSEP','R2')) 验证统计量绘图函数
object:mvr对象
val.type=c('RMSEP','MSEP','R2') : RMSEP:预测均方根误差 ; MSEP:预测均方误差
> library(ISLR)
> library(pls)
> set.seed()
> Hitters<-na.omit(Hitters)
>
> pcr.fit<-pcr(Salary~.,data=Hitters,scale=T,validation='CV')
> summary(pcr.fit)
Data: X dimension:
Y dimension:
Fit method: svdpc
Number of components considered: VALIDATION: RMSEP
Cross-validated using random segments.
(Intercept) comps comps comps comps comps comps comps comps comps comps
CV 348.9 352.2 353.5 352.8 350.1 349.1 349.6 350.9 352.9 353.8
adjCV 348.7 351.8 352.9 352.1 349.3 348.0 348.5 349.8 351.6 352.3
comps comps comps comps comps comps comps comps comps
CV 355.0 356.2 363.5 355.2 357.4 347.6 350.1 349.2 352.6
adjCV 353.4 354.5 361.6 352.8 355.2 345.5 347.6 346.7 349.8 TRAINING: % variance explained
comps comps comps comps comps comps comps comps comps comps comps comps
X 38.31 60.16 70.84 79.03 84.29 88.63 92.26 94.96 96.28 97.26 97.98 98.65
Salary 40.63 41.58 42.17 43.22 44.90 46.48 46.69 46.75 46.86 47.76 47.82 47.85
comps comps comps comps comps comps comps
X 99.15 99.47 99.75 99.89 99.97 99.99 100.00
Salary 48.10 50.40 50.55 53.01 53.85 54.61 54.61
>
> validationplot(pcr.fit,val.type='MSEP')
>
>
>
> set.seed()
> pls.fit<-plsr(Salary~.,data=Hitters,scale=T,validation='CV')
> summary(pls.fit)
Data: X dimension:
Y dimension:
Fit method: kernelpls
Number of components considered: VALIDATION: RMSEP
Cross-validated using random segments.
(Intercept) comps comps comps comps comps comps comps comps comps comps comps comps
CV 346.7 342.3 341.9 343.3 344.2 343.6 340.9 338.4 338.9 337.2 335.5 336.8
adjCV 346.4 341.8 341.2 342.3 342.7 341.9 339.2 336.7 337.1 335.7 334.1 335.1
comps comps comps comps comps comps comps
CV 336.5 335.7 336.1 336.2 336.1 335.9 337.6
adjCV 334.8 334.0 334.4 334.5 334.4 334.2 335.7 TRAINING: % variance explained
comps comps comps comps comps comps comps comps comps comps comps comps comps
X 38.08 51.03 65.98 73.93 78.63 84.26 88.17 90.12 92.92 95.00 96.68 97.68 98.22
Salary 43.05 46.40 47.72 48.71 50.53 51.66 52.34 53.26 53.52 53.77 54.04 54.20 54.32
comps comps comps comps comps comps
X 98.55 98.98 99.24 99.71 99.99 100.00
Salary 54.47 54.54 54.59 54.61 54.61 54.61
>
> validationplot(pls.fit,val.type='MSEP')
ISLR系列:(4.3)模型选择 PCR & PLS的更多相关文章
- ISLR系列:(4.1)模型选择 Subset Selection
Linear Model Selection and Regularization 此博文是 An Introduction to Statistical Learning with Applicat ...
- Spark2.0机器学习系列之2:基于Pipeline、交叉验证、ParamMap的模型选择和超参数调优
Spark中的CrossValidation Spark中采用是k折交叉验证 (k-fold cross validation).举个例子,例如10折交叉验证(10-fold cross valida ...
- 「译」JUnit 5 系列:扩展模型(Extension Model)
原文地址:http://blog.codefx.org/design/architecture/junit-5-extension-model/ 原文日期:11, Apr, 2016 译文首发:Lin ...
- PRML读书会第一章 Introduction(机器学习基本概念、学习理论、模型选择、维灾等)
主讲人 常象宇 大家好,我是likrain,本来我和网神说的是我可以作为机动,大家不想讲哪里我可以试试,结果大家不想讲第一章.估计都是大神觉得第一章比较简单,所以就由我来吧.我的背景是统计与数学,稍懂 ...
- ML 04、模型评估与模型选择
机器学习算法 原理.实现与实践——模型评估与模型选择 1. 训练误差与测试误差 机器学习的目的是使学习到的模型不仅对已知数据而且对未知数据都能有很好的预测能力. 假设学习到的模型是$Y = \hat{ ...
- Workflow:自定义工作流 之 模型选择
Workflow:自定义工作流 之 模型选择 背景 毕业5年,做了4个版本的工作流框架,工作流几乎是每个企业应用开发人员必须跨过的门槛(我还没有跨过去),下面简要说一下之前的4个版本,然后重点介绍第5 ...
- sklearn 模型选择和评估
一.模型验证方法如下: 通过交叉验证得分:model_sleection.cross_val_score(estimator,X) 对每个输入数据点产生交叉验证估计:model_selection.c ...
- 斯坦福大学公开课机器学习:advice for applying machine learning | model selection and training/validation/test sets(模型选择以及训练集、交叉验证集和测试集的概念)
怎样选用正确的特征构造学习算法或者如何选择学习算法中的正则化参数lambda?这些问题我们称之为模型选择问题. 在对于这一问题的讨论中,我们不仅将数据分为:训练集和测试集,而是将数据分为三个数据组:也 ...
- Spark机器学习——模型选择与参数调优之交叉验证
spark 模型选择与超参调优 机器学习可以简单的归纳为 通过数据训练y = f(x) 的过程,因此定义完训练模型之后,就需要考虑如何选择最终我们认为最优的模型. 如何选择最优的模型,就是本篇的主要内 ...
随机推荐
- 跟着大佬重新入门DP
数列两段的最大字段和 POJ2479 Maximum sum Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 41231 Acce ...
- python笔记七(递归函数)
在介绍递归函数之前,我们先介绍以下递归函数的使用有以下特征: 1.递归函数就是函数在函数体内部调用本身 2.递归函数的运算规模要不断减小,这样才是可以运算的 3.递归的层数不要超过999,因为函数调用 ...
- 网页底部广告悬浮弹窗(css)
有的单页面需要添加广告等悬浮div. 部分代码: <div class="flex"> 内容.... </div> 主要css代码: .flex{posit ...
- jQuery 捕获
jQuery 拥有可操作 HTML 元素和属性的强大方法. jQuery DOM 操作 jQuery 中非常重要的部分,就是操作 DOM 的能力. jQuery 提供一系列与 DOM 相关的方法,这使 ...
- Java第8次实验(IO流)
参考资料 本次作业参考文件 正则表达式参考资料 第1次实验 1. 字符流与文本文件:使用 PrintWriter(写),BufferedReader(读) 参考文件:基础代码目录Student.jav ...
- C/C++ 函数指针
函数声明 例如: float func(int, int); 以上就是一个函数的声明,要注意它的实际功能并没有被实现,换句话说就是它并没有被定义,只是声明此函数的存在.要想调用次函数,你必须对对此函数 ...
- Dynamics CRM 查找字段下拉的最多10个选项的排序规则
原文链接来自DTCCh论坛http://dynamics.ms-talent.com.cn/bbs/content/?id=1406&catogory=CRM 如果你是从事dynamics c ...
- 安卓高级 特效动画ExplosionField和 SmoothTransition
本教程所有图片为github上的所无法正常访问请科学上网 SmoothTransition 展示效果 github:源码地址 使用方法 你能通过一行代码使用上面所有的动画 @Override prot ...
- 安卓开发:简单的登陆跳转_APK实现直接跳转到本CSDN博客
最近在开始接触Android APP开发,有了一点java基础之后,安卓代码确实看起来就没有那么难了,可以跟着书上把例程敲一遍,然后熟能生巧可以应用起来,现在写了一个简单的APP,实现的是Edit编辑 ...
- [nginx]统计文件下载是否完整思路(flask)
有一个需求是统计文件是否被用户完整下载,因为是web应用,用js没有找到实现方案,于是搜索下nginx的实现方案,把简单的探索过程记录下. 实验一 最原始的思路,查看日志,下载了一个文件之后我们看日志 ...