偏最小二乘法(SIMPLS—未简化)

1.偏最小二乘法(NIPALS经典实现–未简化)

2.偏最小二乘法 基本性质推导

3.OLS,PCA,CCA,PLS和CR的关系总结及几何解释

前面两篇文章,实现了PLS最原始的NIPALS算法,并对PLS的基本性质做了一些推导,对PLS总算有一个基本认识。但是,那些只是开胃小菜,最多只能算站在PLS的大门口,还没迈进去。这篇文章对SIMPLS算法进行实现和讨论,达到迈入半只脚的境界。


原始的NIPALS算法可谓啰嗦,反复迭代,对E和F的成分提了又提,完了,还有对系数做一个反标准化,完全不理会别人受得了受不了。当然,NIPALS也有优化版本,比如F的成分提取完全是多余,我们都知道通过投影轴w,我们已经可以推出q,v,r,隐隐中,又许多可以优化的地方。比如说F的成分有必要提取吗是没有必要

以后,再实现优化的NIPALS再做详细讨论。言归正传,目前先对SIMPLS开刀

看了SIMPLS的参考文献,描述的符 总是不同,就是相同,代表的含义已经不同,看了总是有一种精神分裂的感觉。这里按照软件设计的开闭原则,尽量保留之前的所有变量意义不变,看看SIMPLS算法到底搞了什么飞机。

首先,看一下SIMPLS的计算方式,先看看它的非简化版本。

假定E,F已经中心化

SIMPLS的目标函数以及约束

SIMPLE不再直接计算E,F的残差阵,直接计算从协方差矩阵S = E’T里面提取信息。投影轴w,v是正交的,就这一点,是否计算残差E,F是没有意义的,关键是S矩阵必须要调整,否则,无法保证w和v的正交性,提取结果的有效性。那么如何保持正交性呢。先看一下约束,这几项和NIPALS看上去并没什么差别,事实上,对NIPALS而言,这些约束只是它的一个结果,并非前提。w,v正交比较容易理解,先看看要满足最后一项需要具备什么条件。

j>i,也就是说后续的wj对pi正交。对于

从PLS的性质推导里面可以看到,

w是S的左奇异矩阵中的向量,w与v的关系是

因此,只要令S按照和P的正交方向分解下去即可,就能保证上述的几点约束。P矩阵对我来说一直有点尴尬,它并不等于W,以至于难以去解释它的几何意义。这里就暂时看成W的一个加强版吧。

从几何意义上来说,这个过程是将S进行空间上的分解,分为与P正交的部分和P上的投影,正交部分作为残差。为什么选择P呢,因为P算是S的特征向量W的近亲,能尽可能多提取到S中的成分,符合PLS的思路。为什么P不能直接用W表示呢,让人看着实在揪心,后续文章再揭晓。步子不能太大,会扯着0.

总结一下SIMPLS原始版本的计算过程,E,F已经经过中心化

上代码

测试代码

跟matlab自带的plsregress算法结果基本重合,这个也很正常,它默认就是用simpls,后续会扒一扒它的simpls实现过程,不过先将SIMPLS算法再进一步完善一下,加入解释比列等等,再跟matlab的simpls对比一下,后面想再讨论一下SIMPLS和NIPALS的差异。另外得吐槽一下,虽然代码写得丑,但我还是说一下,csdn的代码段就不能支持一下matlab的高亮显示,好让我无需鼓足勇气就能把代码传上来。

PS:我用C已经有十多年的时间,自从开始研究数据科学以来,我已经基本放弃C了,当年为了将一个稀疏版的pls从R语言转为C,那代码写了几天,调了一个多星期,从此对C这样的语言痛心疾首。现在也没有必须用到C的工作,所以对于我来说,Life is short, get far away from C。

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34530 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月14日
下一篇 2022年9月14日

相关推荐