各位芝士好友,今天我们来聊一聊lasso回归算法。与预后有关的文章,传统的做法一般会选择多变量cox回归,高级做法自然就是我们今天的lasso分析。

首先我们先来几篇文献,看一下lasso最近发的两篇文章,如下:

这两篇文章均是采用了lasso回归的范文。感兴趣的可以自行下载学习,当然今天我们主要是和大家探讨lasso回归的细枝末节,具体体会这个算法的精妙和思想。

Lasso回归本质上就是一种回归分析,我们见到最多的或许就是线性回归,方程如下:

其中x为自变量,y为因变量,线性回归采用一个高维的线性函数来尽可能的拟合所有的数据点,最简单的想法就是最小化函数值与真实值误差的平方,比如假设我们构建一个函数H。

这个时候我们需要保证函数J达到最小,就可以了。

Lasso回归则是在一般线性回归基础上加入了正则项,在保证最佳拟合误差的同时,使得参数尽可能的“简单”,使得模型的泛化能力强。正则项一般采用一,二范数,使得模型更具有泛化性,同时可以解决线性回归中不可逆情况。这个时候你可能不淡定了,你是魔鬼吗?什么是正则项???

正则项:正则化就是通过对模型参数进行调整(数量和大小),降低模型的复杂度,以达到可以避免过拟合的效果。正则化是机器学习中的一种叫法,其它领域内叫法各不相同,统计学领域叫惩罚项,数学领域叫范数。而正则项又包括两种,即一范数和二范数,就是L1和L2范数。

重点来了:采用L1范数则是lasso 回归,L2范数则是岭回归了。那么函数有啥区别呢?如下:

L1范数

L2范数

红框标记的就是正则项,L1范数是所有参数绝对值之和,对应的回归方法叫做Lasso回归。

L2范数是所有参数的平方和,对应的回归方法叫做Ridge回归,岭回归需要注意的是,正则项中的回归系数为每个自变量对应的回归系数,不包含回归常数项

L1和L2各有优劣,L1是基于特征选择的方式,有多种求解方法,更加具有鲁棒性;L2则鲁棒性稍差,只有一种求解方式,而且不是基于特征选择的方式。我们在大多数signature文章中主要是基因挑选,自然就是今天的主题lasso cox回归,接下来我们看一下,如何采用R语言glmnet来实现。

1|安装glmnet包,操作很简单,直接install,接着加载进来就行,接着我们还需要加载示例数据。

这个cox数据共包含两个数据,但都是矩阵,我们需要给其整理成一个是包含30个基因在1000个病人样本中的表达,另一个是每个患者的生存状态和生存时间,生存时间以年为单位,如下:

2|构建生存分析对象,以进行下一步构建lasso回归:

3|通过glmnet函数中的设置family参数定义采用的算法模型,比如设置cox,则如下:

包自带的绘图如下:

4|Lasso回归最重要的就是选择合适的λ值,可以通过cv.glmnet函数实现

结果如下:

基于该图选择最佳的λ,一般可以采用两个内置函数实现cvfit$lambda.min和 cvfit$lambda.1se 。

5|基因筛选,采用coef函数即可,有相应参数的gene则被保留,采用λ使用的是lambda.min:

结果如下:

第二列有数值是非点号的则代表被选择的基因。

6|美化lasso图,产生如下的图:

代码如下,我们将代码封装在plot_lasso.r里面,只需要source即可,如下:

Ok,今天就和大家分享到这,关注公众号:百味科研芝士,后台回复“lasso”获取源文件及代码,

r ridge回归_手把手带你画高大上的lasso回归模型图相关推荐

  1. 怎么用python实现回归_手把手教你用Python进行回归(附代码、学习资料)-阿里云开发者社区...

    我刚开始学习数据科学时,第一个接触到的算法就是线性回归.在把这个方法算法应用在到各种各样的数据集的过程中,我总结出了一些它的优点和不足. 首先,线性回归假设自变量和因变量之间存在线性关系,但实际情况却 ...

  2. ac2100 反弹shell无法粘贴_手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程...

    手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程 2020-05-14 18:49:24 224点赞 1790收藏 241评论 你是AMD Yes党?还是 ...

  3. python讲1020逆序输出_手把手带你学 Python3(九)| 快速实现数据处理的不二工具(文末有彩蛋)...

    ", line 1, in TypeError: 'int' object is not callable #当然实际代码绝对不能这么写,这里是为了说明函数名也是变量.要恢复abs函数,请重 ...

  4. 群晖nas介绍文档_手把手带你玩转NAS 篇八:NAS文档随身带——多终端文件同步介绍(群晖drive篇)...

    手把手带你玩转NAS 篇八:NAS文档随身带--多终端文件同步介绍(群晖drive篇) 2020-01-08 15:23:44 24点赞 214收藏 31评论 你是AMD Yes党?还是intel和N ...

  5. python画龙猫_手把手教你画龙猫,详细到每一条线!

    宫崎骏老爷爷的画功简直就是美术生心中的神仙呐 今天小胖要教大家画宫崎骏笔下的龙猫! 手把手教你画龙猫,详细到每一条线! 快学起来吧~ 第一步: 在纸张的左上角画一把小伞 手把手教你画龙猫,详细到每一条 ...

  6. 威联通nas怎么更换大硬盘_手把手带你玩转NAS 篇一:无损转移硬盘数据(威联通篇)TS-453Bmini...

    手把手带你玩转NAS 篇一:无损转移硬盘数据(威联通篇)TS-453Bmini 2019-12-15 11:00:00 51点赞 694收藏 72评论 你是AMD Yes党?还是intel和NVIDI ...

  7. esp8266 蓝牙耳机_手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(三)...

    手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(三) 2020-05-11 19:43:10 12点赞 137收藏 10评论 上一次我们初步认识了SDK编程和透传,给模组更新FW. ...

  8. python 靶心_手把手教你使用Python实战反欺诈模型|原理+代码

    原标题:手把手教你使用Python实战反欺诈模型|原理+代码 作者 | 萝卜 来源 | 早起Python(ID: zaoqi-python) 本文将基于不平衡数据,使用Python进行 反欺诈模型数据 ...

  9. lasso回归_一文读懂线性回归、岭回归和Lasso回归

    (图片由AI科技大本营付费下载自视觉中国) 作者 | 文杰 编辑 | yuquanle 本文介绍线性回归模型,从梯度下降和最小二乘的角度来求解线性回归问题,以概率的方式解释了线性回归为什么采用平方损失 ...

最新文章

  1. linux中登录类型及配置文件
  2. jieba(结巴)常用方法
  3. KDE 4.3.2 发布
  4. Map 3D中程序设置地图中心点
  5. ASP.NET应用程序性能测试
  6. python变量后面加星号_计算与变量(一)跟杜老师一起,趣学Python编程
  7. Andrew Ng机器学习公开课笔记 -- Logistic Regression
  8. 页面中鼠标触碰字体后切换颜色且随鼠标移走后改变
  9. Spring Boot 注解(1)
  10. 用GPU进行TensorFlow计算加速
  11. pg 简单备份和恢复
  12. 关于圆与直线所包含点的多少关系证明
  13. 机器学习落地的五个阶段
  14. nuget的原理_从零开始学习 dotnet 编译过程和 Roslyn 源码分析
  15. 从哥尼斯堡“七桥问题”到盖洛普“优势识别器”
  16. 深度学习 - 生成对抗网络
  17. Kivy App开发之手势控制
  18. Tensorboard可视化
  19. Hexo博客备份方案
  20. Harvard Dataverse 数据批量下载

热门文章

  1. 【OpenCV】cv2.putText()函数用法
  2. JAVA 性能调优相关命令
  3. 华南师范大学校园网自动登录教程
  4. JS实现函数递归、运用技巧
  5. 关于UpdateData函数
  6. 蓝牙热敏打印开发(佳博打印机)
  7. 摄像头模组简介与质量管控(连载三)
  8. (十四)STM32——外部中断(EXTI)
  9. jquery 弹出对话框
  10. vscode运行cpp文件:检测到 #include 错误。请更新 includePath。已为此翻译单元(E:\C++ Code\test1\test1\test1.cpp)禁用波形曲线。