浅谈sPLS和sgPLS
偏最小二乘回归(partial least squares regression, 也称PLS)是一个 与主成分分析回归(principal components regression)有关系的统计方法。不是找到自变量和因变量之间的最大方差的超平面,而是找到一个能将预测变量和可观测变量投影到新空间的线性回归模型 (wikipedia, 2020)
先从Penalised Loss说起
Penalised Loss = Original loss + Penalty
Original loss = MSE
Panelty = λ\lambdaλ * //β\betaβ//
lamda变大–>panelty变大–> penalised loss变大–>Original loss变小–>容易overfit
经典的penalize loss图
这图的目的是求出使Penalty loss最小的beta
左边的是lasso penalty= //β1//+//β2////\beta_1// + //\beta_2////β1//+//β2// 所以中间图像为方形
右边的是ridge penalty= //β1//2+//β2//2//\beta_1//^2+ //\beta_2//^2//β1//2+//β2//2 所以中间图像为圆形
中间实心区域为指定λ\lambdaλ时的penalty,面积越大,penalty越小。
红色圈为MSE,中间的点为MSE最小时β1\beta_1β1,β2\beta_2β2的值,同一个圈上MSE值相同。
calibration即为调参,指在该λ\lambdaλ下的opt(MSE)_{opt}(MSE)opt(MSE)。
由此,最优penalize loss时β\betaβ的取值即为红色圈与蓝色区域相交的部分。因为这是constrianed penalize,所以不能超过蓝色区域。
此图为二维,用于确定只有两个β\betaβ时的penalize loss。如果有多个β\betaβ,图可以为高维。
PLS和linear regression对比
两者penality loss公式相同,但是y^=f(xˉ)\hat{y}=f(\bar{x})y^=f(xˉ)的function不同,output不同。
linear regression:
xˉ=[123]\bar x = \begin{bmatrix}1&2&3 \end{bmatrix}xˉ=[123]
β=[012]\beta =\begin{bmatrix} 0\\1\\2 \end{bmatrix}β=⎣⎡012⎦⎤
y^=[123]∗[012]=2+6=8\hat{y} = \begin{bmatrix}1&2&3 \end{bmatrix} *\begin{bmatrix} 0\\1\\2 \end{bmatrix} = 2+6 = 8y^=[123]∗⎣⎡012⎦⎤=2+6=8
而PLS的output是一个matrix
xˉ=[2584123−26]3∗3\bar x = \begin{bmatrix} 2&5&8\\4&1&2\\3&-2&6\end{bmatrix} _{3*3}xˉ=⎣⎡24351−2826⎦⎤3∗3
yˉ=[510(−2)962]3∗2\bar y = \begin{bmatrix} 5&10\\(-2)&9\\6&2 \end{bmatrix} _{3*2}yˉ=⎣⎡5(−2)61092⎦⎤3∗2
PLS: find a coefficient matrix for xˉ\bar xxˉ to get best predict yˉ\bar yyˉ
X * β\betaβ = Y
β=[(−2)34301]3∗2\beta = \begin{bmatrix} (-2)&3\\4&3\\0&1 \end{bmatrix} _{3*2}β=⎣⎡(−2)40331⎦⎤3∗2
sPLS和sgPLS对比
penalize loss= original loss = λ∗(0.32+0.32+0.42)\lambda * (0.3^2 + 0.3^2+0.4^2)λ∗(0.32+0.32+0.42)
λ\lambdaλ calibration
λ\lambdaλ变大,选的人多
λ\lambdaλ变小,选的人少
比如lasso 是λ\lambdaλ值在0.01-0.99都试一遍,对于每个λ\lambdaλ都算coefficient
omics data就直接算include多少个x
在R中,只关注新增一个人时loss的值
λ\lambdaλ变大,penalty变大,选的人变少,容易overfit。λ\lambdaλ决定要多大penalty
假设有两组人
组1: A B C
组2: D E F
sgPLS = OrignialLinear+λ//β//Orignial Linear + \lambda//\beta//OrignialLinear+λ//β//
sPLS = OrignialLinear+λ1//β//+λ2//组数//Orignial Linear + \lambda1//\beta// + \lambda2//组数//OrignialLinear+λ1//β//+λ2//组数//
这张是calibrate后的splsda的图。如图,最小的misclassification最优选取数应为19。
这张是calibrate后的sgPLSDA的图。如图,最小misclassification应为选两个组,sparsity parameter是0.9的时候。
在实际操作中,即使sgPLS选出的最优组合是同一组的AB,但如果你知道最优应来自两个组,也可以选择来自不同的结果AE
参考阅读:
- Ridge and Lasso Regression: L1 and L2 Regularization。 https://towardsdatascience.com/ridge-and-lasso-regression-a-complete-guide-with-python-scikit-learn-e20e34bcbf0b
- Regularization: Ridge, Lasso and Elastic Net. https://www.datacamp.com/community/tutorials/tutorial-ridge-lasso-elastic-net
浅谈sPLS和sgPLS相关推荐
- 浅谈MySQL存储引擎-InnoDBMyISAM
浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...
- 【大话设计模式】——浅谈设计模式基础
初学设计模式给我最大的感受是:人类真是伟大啊!单单是设计模式的基础课程就让我感受到了强烈的生活气息. 个人感觉<大话设计模式>这本书写的真好.让貌似非常晦涩难懂的设计模式变的生活化.趣味化 ...
- 学校计算机机房好处,浅谈学校计算机机房维护
浅谈学校计算机机房维护 现在的学校机房都配置了数量较多的计算机,而且机房的使用非常频繁.对于怎样维护好计算机,特别是计算机软件系统,对广大计算机教师来说是一个很重要且非常现实的问题.下面就本人在 ...
- java 中的单元测试_浅谈Java 中的单元测试
单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...
- mybatis与php,浅谈mybatis中的#和$的区别
浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...
- 浅谈GCC预编译头技术
浅谈GCC预编译头技术 文/jorge --谨以此文,悼念我等待MinGW编译时逝去的那些时间. 其 实刚开始编程的时候,我是丝毫不重视编译速度之类的问题的,原因很简单,因为那时我用BASICA.后来 ...
- 【笔记】震惊!世上最接地气的字符串浅谈(HASH+KMP)
震惊!世上最接地气的字符串浅谈(HASH+KMP) 笔者过于垃圾,肯定会有些错的地方,欢迎各位巨佬指正,感激不尽! 引用:LYD的蓝书,一本通,DFC的讲稿,网上各路巨佬 Luguo id: 章鱼那个 ...
- 浅谈几种区块链网络攻击以及防御方案之其它网络攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/16/network_attack_of_blockchain_other_attack/ 写在前面的话 自比特 ...
- 浅谈几种区块链网络攻击以及防御方案之拒绝服务攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/14/network_attack_of_blockchain_ddos_attack/ 写在前面的话 自比特币 ...
最新文章
- 《七笔勾》--陕北风光
- JAVA try...catch...finally中的执行顺序和return语句
- TCP/IP协议讲的明明白白
- 9、oracle数据库下的视图和同义词
- 华为java8_Java8 Stream
- 好男人必看!女生的30条隐私……
- mysql删除新添加数据,MySQL添加、更新与删除数据
- golang groupcache重复抑制(singeflight)机制,防止缓存击穿
- I/O Permission Bit Map in Task State Segment(TSS)
- 规范化之路(一) Checkstyle插件安装使用
- Node.js:清理项目中的依赖
- Golang教程:(十五)指针
- Chrome浏览器的Network面板介绍
- 《大型网站技术架构》阅读笔记
- python 获取邮箱验证码
- 九阴真经战无不胜服务器位置,九阴真经新服“战无不胜”
- 唯品会密码JS解密与python模拟登录
- Intel Compute Sticks 电脑棒安装Ubuntu
- 微信朋友圈背景图片尺寸
- android优化最强软件,七款安卓手机优化软件推荐 为手机提速