r ridge回归_手把手带你画高大上的lasso回归模型图
各位芝士好友,今天我们来聊一聊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回归模型图相关推荐
- 怎么用python实现回归_手把手教你用Python进行回归(附代码、学习资料)-阿里云开发者社区...
我刚开始学习数据科学时,第一个接触到的算法就是线性回归.在把这个方法算法应用在到各种各样的数据集的过程中,我总结出了一些它的优点和不足. 首先,线性回归假设自变量和因变量之间存在线性关系,但实际情况却 ...
- ac2100 反弹shell无法粘贴_手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程...
手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程 2020-05-14 18:49:24 224点赞 1790收藏 241评论 你是AMD Yes党?还是 ...
- python讲1020逆序输出_手把手带你学 Python3(九)| 快速实现数据处理的不二工具(文末有彩蛋)...
", line 1, in TypeError: 'int' object is not callable #当然实际代码绝对不能这么写,这里是为了说明函数名也是变量.要恢复abs函数,请重 ...
- 群晖nas介绍文档_手把手带你玩转NAS 篇八:NAS文档随身带——多终端文件同步介绍(群晖drive篇)...
手把手带你玩转NAS 篇八:NAS文档随身带--多终端文件同步介绍(群晖drive篇) 2020-01-08 15:23:44 24点赞 214收藏 31评论 你是AMD Yes党?还是intel和N ...
- python画龙猫_手把手教你画龙猫,详细到每一条线!
宫崎骏老爷爷的画功简直就是美术生心中的神仙呐 今天小胖要教大家画宫崎骏笔下的龙猫! 手把手教你画龙猫,详细到每一条线! 快学起来吧~ 第一步: 在纸张的左上角画一把小伞 手把手教你画龙猫,详细到每一条 ...
- 威联通nas怎么更换大硬盘_手把手带你玩转NAS 篇一:无损转移硬盘数据(威联通篇)TS-453Bmini...
手把手带你玩转NAS 篇一:无损转移硬盘数据(威联通篇)TS-453Bmini 2019-12-15 11:00:00 51点赞 694收藏 72评论 你是AMD Yes党?还是intel和NVIDI ...
- esp8266 蓝牙耳机_手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(三)...
手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(三) 2020-05-11 19:43:10 12点赞 137收藏 10评论 上一次我们初步认识了SDK编程和透传,给模组更新FW. ...
- python 靶心_手把手教你使用Python实战反欺诈模型|原理+代码
原标题:手把手教你使用Python实战反欺诈模型|原理+代码 作者 | 萝卜 来源 | 早起Python(ID: zaoqi-python) 本文将基于不平衡数据,使用Python进行 反欺诈模型数据 ...
- lasso回归_一文读懂线性回归、岭回归和Lasso回归
(图片由AI科技大本营付费下载自视觉中国) 作者 | 文杰 编辑 | yuquanle 本文介绍线性回归模型,从梯度下降和最小二乘的角度来求解线性回归问题,以概率的方式解释了线性回归为什么采用平方损失 ...
最新文章
- linux中登录类型及配置文件
- jieba(结巴)常用方法
- KDE 4.3.2 发布
- Map 3D中程序设置地图中心点
- ASP.NET应用程序性能测试
- python变量后面加星号_计算与变量(一)跟杜老师一起,趣学Python编程
- Andrew Ng机器学习公开课笔记 -- Logistic Regression
- 页面中鼠标触碰字体后切换颜色且随鼠标移走后改变
- Spring Boot 注解(1)
- 用GPU进行TensorFlow计算加速
- pg 简单备份和恢复
- 关于圆与直线所包含点的多少关系证明
- 机器学习落地的五个阶段
- nuget的原理_从零开始学习 dotnet 编译过程和 Roslyn 源码分析
- 从哥尼斯堡“七桥问题”到盖洛普“优势识别器”
- 深度学习 - 生成对抗网络
- Kivy App开发之手势控制
- Tensorboard可视化
- Hexo博客备份方案
- Harvard Dataverse 数据批量下载
热门文章
- 【OpenCV】cv2.putText()函数用法
- JAVA 性能调优相关命令
- 华南师范大学校园网自动登录教程
- JS实现函数递归、运用技巧
- 关于UpdateData函数
- 蓝牙热敏打印开发(佳博打印机)
- 摄像头模组简介与质量管控(连载三)
- (十四)STM32——外部中断(EXTI)
- jquery 弹出对话框
- vscode运行cpp文件:检测到 #include 错误。请更新 includePath。已为此翻译单元(E:\C++ Code\test1\test1\test1.cpp)禁用波形曲线。