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) 的过程,因此定义完训练模型之后,就需要考虑如何选择最终我们认为最优的模型. 如何选择最优的模型,就是本篇的主要内 ...
随机推荐
- C++重载输入流复习
C++重载输入流 #include <bits/stdc++.h> using namespace std; struct Point { int x, y; Point(int xx, ...
- MongoDB 条件操作符
描述 条件操作符用于比较两个表达式并从mongoDB集合中获取数据. 在本章节中,我们将讨论如何在MongoDB中使用条件操作符. MongoDB中条件操作符有: (>) 大于 - $gt (& ...
- Jmeter(二十)_Mock接口
首先解释一下什么是mock接口. Mock通常是指,在测试一个对象时,我们构造一些假的对象来模拟与其交互.而这些Mock对象的行为是我们事先设定且符合预期.通过这些Mock对象来测试对象在正常逻辑,异 ...
- k8s Kubernetes v1.10
#转移页面 http://www.cnblogs.com/elvi/p/8976305.html
- JAVA处理Blob大对象
Blob对象是SQL Blob的Java语言映射.SQL Blob是一个内置类型,它可以将一个二进制大对象保存在数据库中.接口ResultSet.CallableStatement和PreparedS ...
- Unity使用UGUI进行VR游戏的界面开发
原文链接:http://gad.qq.com/article/detail/7181505 本文首发腾讯GAD开发者平台,未经允许,不得转载 我不知道有多少同学是跟我一样,在开发VR游戏中,是使用的面 ...
- MT8127:改变安卓系统权限问题
找到对应的文件: system/extras/su/su.c 在main函数中,开头我们可以看下以下代码: uid_t current_uid = getuid(); if (current_uid ...
- springMVC源码分析--@ModelAttribute使用及运行原理
这一篇博客我们简单的介绍一下ModelAttribute的使用和运行原理. 1.首先@ModelAttribute是使用在方法或者上的,当使用在方法上时其作用于本身所在的Controller,在访问C ...
- Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication)
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- 根据ccid取得账户,更改某段值再创建账户,返回新的ccid
CREATE OR REPLACE PACKAGE cux_cuxaprebate_utl IS * =============================================== * ...