1 NIPALS 算法

Step1:对原始数据X和Y进行中心化,得到X0和Y0。从Y0中选择一列作为u1,一般选择方差最大的那一列。

注:这是为了后面计算方便,如计算协方差时,对于标准化后的数据,其样本协方差为cov(X,Y)=XTY/(n-1)。

Step2:迭代求解X与Y的变换权重(w1,c1)、因子(u1,t1),直到收敛

step 2.1:利用Y的信息U1,求X的变换权重w1(w1实现有X0到因子t1的变换,t1=X0*w1)及因子t1。从而将X0的信息用t1来近似表达。

            (2.1)

           (2.2)

           (2.3)

Step2.2:利用X的信息t1,求Y的变换权重c1(c1实现有Y0到因子u1的变换,u1=Y0*c1),并更新因子u1。从而将Y0的信息用t1来近似表达。

            (2.4)

            (2.5)

     (2.6)

Step2.5:判断是否已找到合理解

           (2.7)

         若<阈值(如)则继续下面步骤;否则,取,返回step2.1。

注:

1)以上过程的意义及其收敛性的直观分析

     a)公式2.1,实际上求解了由Y的因子u1到X的回归模型的系数,公式2.2与2.3将X映射为第一个因子t1。

     b)同理,公式2.4,实际上求解了由X的因子t1到Y的回归模型的系数,公式2.5与2.6将X映射为第一个因子t1。

      c)这里交替建立X与Y直接回归关系的方式,通常会很快收敛。

2)w1与c1的其他求法。[2,3]中已经证明以上求解过程收敛后找到的解w1与c1可以利用矩阵分析方法找到

     a)特征值分解方法(Eigen Value Decomposition):w1是的最大特征值的单位特征向量,c1是的最大特征值的单位特征向量,

     b)SVD分解法(singular vector decomposition):w1和c1分别于对X0TY0进行SVD分解获得的第一对左奇异向量(left singular vector)和右奇异向量的单位

向量。

Step3:求X与Y的残差矩阵

step 3.1:求X的载荷(X-loading)p1(p1反映X0与因子t1的直接关系,

        注:前面求得X的变换权重w1是由X0到t1的关系,此处的p1是由t1到X0的关系。而且,由于后续的Wi(i>1)是根据Xi的残差求得的,因此它无法反映T到X0的关系。所以,才要求出P以直接反映T到X0的关系)

                 (2.8)

        p1求解公式的推导如下

a)前面已求出t1,现在希望用t1来表达X0,建立回归模型

b)模型不能表达的信息即为X0的残差矩阵X1。

c)上式的关键是求p1,其求解公式推导过程:对转置得,两边右乘t1有,从而有

注:p1代表因子t1在X上的载荷(loadings),它反映了原始变量X与第一个因子向量t1间的关系。

step 3.2:求X0的残差X1。此残差表达了u1所不能反映的X0中的信息。

(2,9)

step 3.3:求Y的载荷(Y-loading)q1(q1反映Y0与因子U1的关系,

(2.10)

step 3.4:建立X因子t1与Y因子u1间的回归模型,用t1预测u1的信息。

(2.11)

step 3.5:求Y0的残差Y1。此残差表达了X因子t1所不能预测的Y0中的信息

(2.12)

注:这里利用,建立t1与Y间的关系。

Step4:利用X1与Y1,重复上面步骤,求解下一批PLS参数(因子、转换权重、载荷、回归系数等)。

在这个算法中,当一个因子计算出来后,进一步计算出X(及Y)的残差。下一个因子是从当前残差矩阵计算出来,因此PLS模型参数(因子scores,loadings, weights)与最初的X0无关,而是与残差有关。

 

2 NIPALS-PLS 参数的理解

1)变换权向量w

                   

在第二轮及以后的计算过程中,权向量wa将残差Xa-1变换为因子得分ta,而不是对原始预处理后的数据X0直接进行变换,这阻碍了对于因子的有效解释。实际上,权向量在PLS回归模型中的解释中用处不大。

2)构建X0到T直接联系的权向量R

                 

PLS算法执行完成后,我们得到所有的因子t,那么我们就可以直接建立原始数据X0与其之间的转换权重矩阵R。其实R就是由X0到T的回归系数,其计算公式为

                

 

3 NIPALS-PLS 的预测过程

当完成PLS模型构建后,我们得到的PLS模型参数包括:

1)转换权重:W(X-weights),C(Y-wights)

2)因子得分:T(X-factor scores),U(Y-factor scores)

3)载荷:P(X-loadings),Q(Y-loadings)

 

当来了一条新数据,其预测计算过程如下

1)预处理:。注:预处理方法与建模时保持一致,这里公式采用中心化处理方法。

2)依次求出求的各因子和残差

             

            

3)计算预测值

           

上面是由T到Y预测值的回归方程,而不是由X0到Y预测值的回归方程。如果在PLS建模过程中获得第2节中介绍的可将X0直接转换为T的权重R,那么就能获得一个针对X0的更直接的回归公式。

                                  ,回归系数

参考文献

[1] S. de Jong. SIMPLS: an alternative approach to partial least squares regression. Chemometrics and Intelligent Laboratory Systems, 18:251–263, 1993.

[2] R. Manne. Analysis of Two Partial-Least-Squares Algorithms for Multivariate Calibration. Chemometrics and Intelligent Laboratory Systems, 2:187–197, 1987.

[3] A. H¨oskuldsson. PLS Regression Methods. Journal of Chemometrics, 2:211–228,1988.

[4]

偏最小二乘回归(PLSR)- 2 标准算法(NIPALS)的更多相关文章

  1. 【建模应用】PLS偏最小二乘回归原理与应用

    @author:Andrew.Du 声明:本文为原创,转载请注明出处:http://www.cnblogs.com/duye/p/9031511.html,谢谢. 一.前言 1.目的: 我写这篇文章的 ...

  2. 偏最小二乘回归(PLSR)- 1 概览

    1. 概览 偏最小二乘算法,因其仅仅利用数据X和Y中部分信息(partial information)来建模,所以得此名字.其总体处理框架体现在下面两图中. 建议先看第2部分,对pls算法有初步了解后 ...

  3. 【数学建模】偏最小二乘回归分析(PLSR)

    PLSR的基本原理与推导,我在这篇博客中有讲过. 0.偏最小二乘回归集成了多元线性回归.主成分分析和典型相关分析的优点,在建模中是一个更好的选择,并且MATLAB提供了完整的实现,应用时主要的问题是: ...

  4. [置顶] 局部加权回归、最小二乘的概率解释、逻辑斯蒂回归、感知器算法——斯坦福ML公开课笔记3

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9113681 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了不少 ...

  5. [matlab] 21.灰色预测、线性回归分析模型与最小二乘回归 (转载)

    灰色预测的主要特点是只需要4个数据,就能解决历史数据少,序列的完整性以及可靠性低的问题,能将无规律的原始数据进行生成得到规律性较强的生成序列,易于检验 但缺点是只适合中短期的预测,且只适合指数级增长的 ...

  6. logistic回归梯度上升优化算法

    # Author Qian Chenglong from numpy import * from numpy.ma import arange def loadDataSet(): dataMat = ...

  7. 用C结构体来实现面向对象编程,ti xDAIS标准算法就这么搞的(1)

    用C结构体来实现面向对象编程,ti xDAIS标准算法就这么搞的. 测试代码如下: #include <stdio.h> #include <stdlib.h> #includ ...

  8. 第 1 章 第 1 题 高级语言的排序问题 C++标准算法实现

    问题分析 依题意,所需程序不用过多考虑效率且暗示使用库,自然想到用高级语言实现(个人选择C++).可用顺序容器暂存数据,用标准算法解决排序问题. 代码实现 #include <iostream& ...

  9. 【计算机视觉】黄金标准算法Gold Standard algorithm

    前言 最近有关于3DMM的内容,博主也只是看了个大概,并没有深入了解算法的实现原理和过程.昨天实习生问关于黄金标准算法的推导,博主也就参考一些资料熟悉了这个算法的实现过程.不太了解使用这个算法的前因后 ...

随机推荐

  1. HDU 5651 xiaoxin juju needs help 数学

    xiaoxin juju needs help 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5651 Description As we all k ...

  2. leetcode132. Palindrome Partitioning II

    leetcode132. Palindrome Partitioning II 题意: 给定一个字符串s,分区使分区的每个子字符串都是回文. 返回对于s的回文分割所需的最小削减. 例如,给定s =&q ...

  3. JProfiler 5.1.4的使用方法

    1. JProfiler运行环境配置 安装目录结构如下,子目录中显示了支持的操作系统: 在服务器和客户端都要安装JProfiler,并且要安装License,在分析工具客户端中进行安装.Windows ...

  4. jdk8十大特性并代码demo(转)

    一.十大特性 1.Lambda表达式 2.Stream函数式操作流元素集合 3.接口新增:默认方法与静态方法 4.方法引用,与Lambda表达式联合使用 5.引入重复注解 6.类型注解 7.最新的Da ...

  5. RapidSVN的使用

    RapidSVN是一个可视化 SVN 客户端,运行速度快,简单易用,现在很多已经做成做成便携版,安装都不用.小乌龟那个SVN感觉太复杂了...不妨试下这个. 1.下载安装 2.运行RapidSVNPo ...

  6. B-树学习笔记

    转自:http://blog.csdn.net/acs713/article/details/6880375 B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构.使用B-tree结构可以显著 ...

  7. [Android开发教程]Android官网developer training中文版教程 - 1.1.1 创建一个Android项目

    本系列持续更新中.转载请注明来源. 前言:近期打算系统学习一下Android开发,发现Android官网上的developer training也是个非常好的学习资料,于是想到一边学习一边写一个中文版 ...

  8. web小流量实验方案

    近期在思考怎么做小流量,在网上搜了一下,总结例如以下: 1.前提,站点pv已经达到了一定的规模,比方上百万pv,不做小流量冒然更新功能,可能会带来大面积流量损失.在这样的前提下须要做小流量实验 2.什 ...

  9. docker和虚拟化技术的区别

    1.docker和虚拟化技术的区别 Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了一个轻量级的虚拟环境.Dock ...

  10. wamp网站Forbidden You don't have permission to access

    Forbidden You don't have permission to access   问题原因:apache的2.4的版本中 Require all denied 应该变成Require a ...