R语言笔记之广义线性模型压缩方法1

这篇博客介绍了R语言中的glmnet包如何应用于广义线性模型和线性回归的压缩方法。glmnet能够处理线性回归、逻辑回归等多种模型,并通过Lasso罚函数调整参数。文章详细展示了如何利用plot()、coef()、predict()等函数观察参数估计路径,以及如何通过交互校验选择最优参数。在收缩线性回归部分,讨论了高斯家族模型和多元高斯模型,并分析了不同参数对模型的影响。
摘要由CSDN通过智能技术生成

glmnet包可以对一系列调优参数值同时计算参数估计。
该包可以用于线性回归,也可以拟合广义线性模型,如逻辑回归,多项式回归,泊松回归,cox回归。

初始glmnet

> install.packages("glmnet")
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.4/glmnet_2.0-13.zip'
Content type 'application/zip' length 1769153 bytes (1.7 MB)
downloaded 1.7 MB

package ‘glmnet’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\LLJiang\AppData\Local\Temp\RtmpCswyie\downloaded_packages
> library(glmnet)
载入需要的程辑包:Matrix
载入需要的程辑包:foreach
Loaded glmnet 2.0-13

Warning messages:
1: 程辑包‘glmnet’是用R版本3.4.3 来建造的 
2: 程辑包‘foreach’是用R版本3.4.3 来建造的 
> dat=read.csv("https://raw.githubusercontent.com/happyrabbit/DataScientistR/master/Data/SegData.csv")
#对数据进行一些清理,删除错误的样本观测,消费金额不能为负数
> dat=subset(dat,store_exp>0&online_exp>0)
> trainx=dat[,grep("Q",names(dat))]
#将实体店消费量和在线消费之和当作因变量
#得到总消费量=实体店消费+在线消费
> trainy=dat$store_exp+dat$online_exp
> glmfit=glmnet(as.matrix(trainx),trainy)
> 

我们可以通过plot(),coef(),predict()等函数来得到相应的信息。

> plot(glmfit,label=T)
> 

这里写图片描述
图中每种颜色的线代表对应一个自变量,展示的是随着Lasso罚函数对应调优参数的变化,各个变量对应的参数估计路径。
图中有上下两个X轴标度,下X轴是调优参数变化对应最优解的一阶范数值,上X轴是调优参数对应的非0参数估计个数,也就是Lasso模型的自由度。

> print(glmfit)

Call:  glmnet(x = as.matrix(trainx), y = trainy) 

      Df   %Dev   Lambda
 [1,]  0 0.0000 3042.000
 [2,]  2 0.1038 2771.000
 [3,]  2 0.1919 2525.000
 [4,]  2 0.2650 2301.000
 [5,]  3 0.3264 2096.000
 [6,]  3 0.3894 1910.000
 [7,]  3 0.4417 <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值