PLS入门
PLS入门:
1,两篇关键文章
[1] de Jong, S. "SIMPLS: An Alternative Approach to Partial Least Squares Regression." Chemometrics and Intelligent Laboratory Systems. Vol. 18, 1993, pp. 251–263.
[2] Rosipal, R., and N. Kramer. "Overview and Recent Advances in Partial Least Squares." Subspace, Latent Structure and Feature Selection: Statistical and Optimization Perspectives Workshop (SLSFS 2005), Revised Selected Papers (Lecture Notes in Computer Science 3940). Berlin, Germany: Springer-Verlag, 2006, pp. 34–51.
2,PLS回归是一种针对多变量的回归。是线性回归的最高峰。
最简单的函数格式为:[XL,YL] = plsregress(X,Y,ncomp)
这个函数意味着把x对y进行回归,并且选择ncomp个主成分,在所得的结果当中,xl和y l就是预测的回归变量的载荷值,相对的来说x是一个n-by-p的矩阵,它代表的是需要预测的变量。他的每一行表示特定样本的各种各样的观察值,它的每一列表示各种各样的变量。y是一个n乘以m的结局矩阵。在可能的情况下,N应该尽可能的是哑元变量。xl是一个,七乘,以n个主成分的,预测值的载荷,xl里边,每一排,都代表了一系列的系数,这些系数可以组成一个,线性的组合,也就是ps主成分的线性的组合。
举一个例子:
汽油在气缸中正常燃烧时火焰传播速度为10~20m/s,在爆震燃烧时可达1500~2000m/s。后者会使气缸温度剧升,汽油燃烧不完全,机器强烈震动,从而使输出功率下降,机件受损。与辛烷有同一分子方程式的异辛烷,其震爆现象最少,我们便把其辛烷值定为100。正庚烷一捧就爆,我们规定其的辛烷值为0,这两种标准燃料以不同的体积比混合起来,可得到各种不同的抗震性等级的混合液,在发动机工作相同条件下,与待测燃料进行对比。抗震性与样品相等的混合液中所含异辛烷百分数,即为该样品的辛烷值。汽油辛烷值大,抗震性好,质量也好。 把汽油中不同种类碳氢化合物的百分比,与其辛烷值相乘,加起来便是该种汽油的辛烷值。
在1997年,Kalivas, John H等人在论文 "Two Data Sets of Near Infrared Spectra," Chemometrics and Intelligent Laboratory Systems, v.37 (1997) pp.255-259.当中,描述了一个利用Near Infrared Spectra(近红外光谱)来分析汽油辛烷值的论文。利用401nm的近红外光谱,可以对汽油辛烷值。
要测定汽油的辛烷值,如果用震动汽油爆炸的方法,那么需要非常昂贵的设备,而且实验的重复性还很差。当然,也可以使用一系列的蒸馏方法将各种烷烃直接分开。但是雷德蒸馏测试仪,和其它的蒸馏装置非常昂贵。因此用相对廉价切稳定的红外光谱来分析辛烷值就成了一种挑战。但是红外光谱成像较为复杂。有200个峰以上。且不同谱峰间停留时间短。因此要从复杂的峰变换中获得良好的分析,需要采用高级的多元回归的方法。
在matlab中运行以下代码:
load spectra
whos NIR octane
运行的结果为:
Name Size Bytes Class Attributes
NIR 60x401 192480 double
octane 60x1 480 double
这表明有60个样本,每个样本有401个波峰,而他们的辛烷值(因为预先混合)有480个已知的值。我们需要做的事情,就是利用多元回归的方法去把这60*401个矩阵和60*1的矩阵进行回归。回归完成之后,如果以后有新的某种汽油的红外光谱数据,就可以方便的通过上述公式计算出它的辛烷值。
[dummy,h] = sort(octane);
oldorder = get(gcf,'DefaultAxesColorOrder');
set(gcf,'DefaultAxesColorOrder',jet(60));
plot3(repmat(1:401,60,1)',repmat(octane(h),1,401)',NIR(h,:)');
set(gcf,'DefaultAxesColorOrder',oldorder);
xlabel('Wavelength Index'); ylabel('Octane'); axis('tight');
grid on
PLS入门的更多相关文章
- Spark入门实战系列--8.Spark MLlib(上)--机器学习及SparkMLlib简介
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .机器学习概念 1.1 机器学习的定义 在维基百科上对机器学习提出以下几种定义: l“机器学 ...
- webpack入门文档教程
.octicon{margin-right:2px}a.tabnav-extra:hover{color:#4078c0;text-decoration:none}.tabnav-btn{margin ...
- Python爬虫入门之Cookie的使用
本节我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要 ...
- Python爬虫入门六之Cookie的使用
大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在 ...
- JWT原理 使用(入门篇)
1.JWT简介 JWT:Json Web Token,是基于Json的一个公开规范,这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息,他的两大使用场景是:认证和数据交换 使用起来就是,由 ...
- Httpd服务入门知识-http协议版本,工作机制及http服务器应用扫盲篇
Httpd服务入门知识-http协议版本,工作机制及http服务器应用扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Internet与中国 Internet最早来源于美 ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
随机推荐
- Win10重复按键盘经常按不出?Win10关闭筛选键步骤
在Win10系统中,有用户发现,有时重复按一个键位,经常会出现打不出字符的情况,导致输入效率降低,其实这很有可能是你开启了筛选键导致,筛选键帮助用户忽略那些短时间的按键动作,下面我们就来看看win10 ...
- 《精通C#》索引器与重载操作符(11.1-11.2)
1.索引器方法结构大致为<modifier><return type> this [argument list],它可以在接口中定义: 在为接口声明索引器的时候,记住声明只是表 ...
- C++语法-指针 (1)
<C++程序设计> 谭浩强 清华大学出版社 2016-08-03 1.P167 一般的C++编译系统为每个指针变量分配4个字节的存储单元,用来存放变量的地址. 2.P169 .cpp文件 ...
- [MISS静IOS开发原创文摘]-AppDelegate存储全局变量和 NSUserDefaults standardUserDefaults 通过模型保存和读取数据,存储自定义的对象
由于app开发的需求,需要从api接口获得json格式数据并保存临时的 app的主题颜色 和 相关url 方案有很多种: 1, 通过AppDelegate保存为全局变量,再获取 2,使用NSUSerD ...
- Excel函数汇总:
/** *D1—要查找的目标值 *G:G—查找的单元格范围,G:G表示G列 *1—查找第一个匹配 *FALSE—找到结果即返回 */ VLOOKUP(D1,G:G,1,FALSE):返回查找到的单元格 ...
- span 元素无法设置宽度问题
span 元素为行内元素,没有width属性,需要转换为块级元素才可以设置width: 拓展:html元素分为块级元素,行内元素.可变元素. 行内元素与块级元素直观上的区别 1 .行内元素会在一条直线 ...
- XmlHelper
获取XML节点的值(http服务使用xml传输数据,节点名称唯一) /// <summary> /// 获取xml节点的值 /// </summary> /// <par ...
- js调用.net后台事件、后台调用前台以及js调用服务器控件
1. javaScript函数中执行C#代码中的函数: 方法一:间接触发后台代码 1.首先建立一个服务端控件按钮命名为btn1,双击进入后台将调用或处理的内容写入btn1_click中; 2.在前台写 ...
- lamp遇到问题
1.配置好apache和虚拟host,显示无权, 将网站目录更新755,还是不行,最后selinux: 1.设置下面即可: chcon -R -h -t httpd_sys_content_t /ho ...
- Selenium的延迟等待
http://my.oschina.net/u/928852/blog/98885 Selenium的延迟等待分为 显式等待(Explicit Wait) & 隐式等待(Implicit Wa ...