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) 的过程,因此定义完训练模型之后,就需要考虑如何选择最终我们认为最优的模型. 如何选择最优的模型,就是本篇的主要内 ...
随机推荐
- ACM 饭卡
Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负) ...
- JavaScript switch 语句
switch 语句用于基于不同的条件来执行不同的动作. JavaScript switch 语句 请使用 switch 语句来选择要执行的多个代码块之一.你可以在JavaScript编程实战中了解怎么 ...
- 分布式一致性协议Raft原理与实例
分布式一致性协议Raft原理与实例 1.Raft协议 1.1 Raft简介 Raft是由Stanford提出的一种更易理解的一致性算法,意在取代目前广为使用的Paxos算法.目前,在各种主流语言中都有 ...
- hibernate5学习之理解数据库级并发
本文作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan/article/details/50551741 当我们谈起隔离的时候,我们总是假定两个物体直接要么隔 ...
- Linux下文件的mtime/atime/ctime研究
概述 在Linux下,对于某一个文件或文件夹时间的描述有三种:文件修改时间mtime,文件访问时间atime,文件状态改变时间ctime.在Linux下无法获取到文件的创建时间,因为根本就没有保存这个 ...
- 【mybatis深度历险系列】mybatis中的高级映射一对一、一对多、多对多
学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一.一对多.多对多,希望多有需要 ...
- 微信小程序基础之常用控件text、icon、progress、button、navigator
今天展示一下基础控件的学习开发,希望对大家有所帮助,转载请说明~ 首先延续之前的首页界面展示,几个跳转navigator的使用,然后是各功能模块的功能使用 一.text展示 使用按钮,进行文字的添加与 ...
- springMVC源码分析--ControllerBeanNameHandlerMapping(八)
在上一篇博客springMVC源码分析--AbstractControllerUrlHandlerMapping(六)中我们介绍到AbstractControllerUrlHandlerMapping ...
- java之异常处理
异常Exception我们分为 |--RuntimeException运行期异常,我们需要修正代码 |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过 异常有两种处理 ...
- 利用CocoaHTTPServer实现wifi局域网传输文件到iphone
背景 近日在做一个代码阅读器,其中涉及到代码文件的上传,之前看到过许多app支持局域网传文件,因此就通过查询和研究实现了此功能,我是用的框架是CocoaHTTPServer. 原理 CocoaHTTP ...