原文链接:http://tecdat.cn/?p=3795
原文出处:拓端数据部落公众号
Glmnet是一个通过惩办最大似然关系拟合狭义线性模型的软件包。正则化门路是针对正则化参数的值网格处的lasso或Elastic Net(弹性网络)惩办值计算的。该算法十分快,并且能够利用输出矩阵中的稠密性 x
。它适宜线性,逻辑和多项式,泊松和Cox回归模型。能够从拟合模型中做出各种预测。它也能够拟合多元线性回归。
glmnet
解决以下问题
在笼罩整个范畴的值网格上。这里l(y,)是察看i的负对数似然奉献;例如对于高斯分布是。 _弹性网络_惩办由管制,LASSO(= 1,默认),Ridge(= 0)。调整参数管制惩办的总强度。
家喻户晓,岭惩办使相干预测因子的系数彼此放大,而套索偏向于抉择其中一个而抛弃其余预测因子。_弹性网络_则将这两者混合在一起。
glmnet
算法应用循环坐标降落法,该办法在每个参数固定不变的状况下间断优化指标函数,并重复循环直到收敛,咱们的算法能够十分疾速地计算求解门路。
代码能够解决稠密的输出矩阵格局,以及系数的范畴束缚,还包含用于预测和绘图的办法,以及执行K折穿插验证的性能。
疾速开始
首先,咱们加载 glmnet
包:
library(glmnet)
包中应用的默认模型是高斯线性模型或“最小二乘”。咱们加载一组事后创立的数据以进行阐明。用户能够加载本人的数据,也能够应用工作空间中保留的数据。
该命令 从此保留的R数据中加载输出矩阵 x
和因向量 y
。
咱们拟合模型 glmnet
。
fit = glmnet(x, y)
能够通过执行plot
函数来可视化系数 :
plot(fit)
每条曲线对应一个变量。它显示了当变动时,其系数绝对于整个系数向量的ℓ1范数的门路。上方的轴示意以后处非零系数的数量,这是套索的无效自由度(_df_)。用户可能还心愿对曲线进行正文。这能够通过label = TRUE
在plot命令中进行设置来实现 。
glmnet
如果咱们只是输出对象名称或应用print
函数,则会显示每个步骤的门路 摘要 :
print(fit)
## ## Call: glmnet(x = x, y = y) ## ## Df %Dev Lambda## \[1,\] 0 0.0000 1.63000## \[2,\] 2 0.0553 1.49000## \[3,\] 2 0.1460 1.35000## \[4,\] 2 0.2210 1.23000## \[5,\] 2 0.2840 1.12000## \[6,\] 2 0.3350 1.02000## \[7,\] 4 0.3900 0.93300## \[8,\] 5 0.4560 0.85000## \[9,\] 5 0.5150 0.77500## \[10,\] 6 0.5740 0.70600## \[11,\] 6 0.6260 0.64300## \[12,\] 6 0.6690 0.58600## \[13,\] 6 0.7050 0.53400## \[14,\] 6 0.7340 0.48700## \[15,\] 7 0.7620 0.44300## \[16,\] 7 0.7860 0.40400## \[17,\] 7 0.8050 0.36800## \[18,\] 7 0.8220 0.33500## \[19,\] 7 0.8350 0.30600## \[20,\] 7 0.8460 0.27800
它从左到右显示了非零系数的数量(Df
),解释的(零)偏差百分比(%dev
)和(Lambda
)的值。
咱们能够在序列范畴内取得一个或多个处的理论系数:
coef(fit,s=0.1)
## 21 x 1 sparse Matrix of class "dgCMatrix"## 1## (Intercept) 0.150928## V1 1.320597## V2 . ## V3 0.675110## V4 . ## V5 -0.817412## V6 0.521437## V7 0.004829## V8 0.319416## V9 . ## V10 . ## V11 0.142499## V12 . ## V13 . ## V14 -1.059979## V15 . ## V16 . ## V17 . ## V18 . ## V19 . ## V20 -1.021874
还能够应用新的输出数据在特定的处进行预测:
predict(fit,newx=nx,s=c(0.1,0.05))
## 1 2## \[1,\] 4.4641 4.7001## \[2,\] 1.7509 1.8513## \[3,\] 4.5207 4.6512## \[4,\] -0.6184 -0.6764## \[5,\] 1.7302 1.8451## \[6,\] 0.3565 0.3512## \[7,\] 0.2881 0.2662## \[8,\] 2.7776 2.8209## \[9,\] -3.7016 -3.7773## \[10,\] 1.1546 1.1067
该函数 glmnet
返回一系列模型供用户抉择。穿插验证可能是该工作最简略,应用最宽泛的办法。
cv.glmnet
是穿插验证的次要函数。
cv.glmnet
返回一个 cv.glmnet
对象,此处为“ cvfit”,其中蕴含穿插验证拟合的所有成分的列表。
咱们能够绘制对象。
它包含穿插验证曲线(红色虚线)和沿序列的高低标准偏差曲线(误差线)。垂直虚线示意两个选定的。
咱们能够查看所选的和相应的系数。例如,
cvfit$lambda.min
## \[1\] 0.08307
lambda.min
是给出最小均匀穿插验证误差的值。保留的另一个是 lambda.1se
,它给出了的模型,使得误差在最小值的一个标准误差以内。咱们只须要更换 lambda.min
到lambda.1se
以上。
coef(cvfit, s = "lambda.min")
## 21 x 1 sparse Matrix of class "dgCMatrix"## 1## (Intercept) 0.14936## V1 1.32975## V2 . ## V3 0.69096## V4 . ## V5 -0.83123## V6 0.53670## V7 0.02005## V8 0.33194## V9 . ## V10 . ## V11 0.16239## V12 . ## V13 . ## V14 -1.07081## V15 . ## V16 . ## V17 . ## V18 . ## V19 . ## V20 -1.04341
留神,系数以稠密矩阵格局示意。起因是沿着正则化门路的解通常是稠密的,因而应用稠密格局在工夫和空间上更为无效。
能够依据拟合的cv.glmnet
对象进行预测 。让咱们看一个示例。
## 1## \[1,\] -1.3647## \[2,\] 2.5686## \[3,\] 0.5706## \[4,\] 1.9682## \[5,\] 1.4964
newx
与新的输出矩阵 s
雷同,如前所述,是预测的值。
线性回归
这里的线性回归是指两个模型系列。一个是 gaussian
正态_散布_,另一个是 mgaussian
多元正态_散布_。
正态_散布_
假如咱们有观测值xi∈Rp并且yi∈R,i = 1,...,N。指标函数是
其中≥0是复杂度参数,0≤≤1在岭回归(=0)和套索LASSO(=1)之间。
利用坐标降落法解决该问题。具体地说,通过计算j=〜j处的梯度和简略的演算,更新为
其中。
当x
变量标准化为具备单位方差(默认值)时,以上公式实用 。
glmnet
提供各种选项供用户自定义。咱们在这里介绍一些罕用的选项,它们能够在glmnet
函数中指定 。
alpha
示意弹性网混合参数,范畴∈[0,1]。=1是套索(默认),=0是Ridge。weights
用于察看权重。每个察看值的默认值为1。nlambda
是序列中值的数量。默认值为100。lambda
能够提供,但通常不提供,程序会构建一个序列。主动生成时,序列由lambda.max
和 确定lambda.min.ratio
。standardize
是x
在拟合模型序列之前进行变量标准化的逻辑标记 。
例如,咱们设置=0.2,并对后半局部的观测值赋予两倍的权重。为了防止在此处显示太长时间,咱们将其设置 nlambda
为20。然而,实际上,倡议将的数量设置为100(默认值)或更多。
而后咱们能够输入glmnet
对象。
print(fit)
## ## Call: glmnet(x = x, y = y, weights = c(rep(1, 50), rep(2, 50)), alpha = 0.2, nlambda = 20) ## ## Df %Dev Lambda## \[1,\] 0 0.000 7.94000## \[2,\] 4 0.179 4.89000## \[3,\] 7 0.444 3.01000## \[4,\] 7 0.657 1.85000## \[5,\] 8 0.785 1.14000## \[6,\] 9 0.854 0.70300## \[7,\] 10 0.887 0.43300## \[8,\] 11 0.902 0.26700## \[9,\] 14 0.910 0.16400## \[10,\] 17 0.914 0.10100## \[11,\] 17 0.915 0.06230## \[12,\] 17 0.916 0.03840## \[13,\] 19 0.916 0.02360## \[14,\] 20 0.916 0.01460## \[15,\] 20 0.916 0.00896## \[16,\] 20 0.916 0.00552## \[17,\] 20 0.916 0.00340
这将显示生成对象的调用 fit
以及带有列Df
(非零系数的数量), %dev
(解释的偏差百分比)和Lambda
(对应的值) 的三列矩阵 。
咱们能够绘制拟合的对象。
让咱们针对log-lambda值标记每个曲线来绘制“拟合”。
这是训练数据中的偏差百分比。咱们在这里看到的是,在门路末端时,该值变动不大,然而系数有点“收缩”。这使咱们能够将注意力集中在重要的拟合局部上。
咱们能够提取系数并在某些特定值的状况下进行预测。两种罕用的选项是:
s
指定进行提取的值。exact
批示是否须要系数的准确值。
一个简略的例子是:
## 21 x 2 sparse Matrix of class "dgCMatrix"## 1 1## (Intercept) 0.19657 0.199099## V1 1.17496 1.174650## V2 . . ## V3 0.52934 0.531935## V4 . . ## V5 -0.76126 -0.760959## V6 0.46627 0.468209## V7 0.06148 0.061927## V8 0.38049 0.380301## V9 . . ## V10 . . ## V11 0.14214 0.143261## V12 . . ## V13 . . ## V14 -0.91090 -0.911207## V15 . . ## V16 . . ## V17 . . ## V18 . 0.009197## V19 . . ## V20 -0.86099 -0.863117
左列是,exact = TRUE
右列是 FALSE
。从下面咱们能够看到,0.01不在序列中,因而只管没有太大差别,但还是有一些差别。如果没有特殊要求,则线性插补就足够了。
用户能够依据拟合的对象进行预测。除中的选项外 coef
,主要参数是 newx
的新值矩阵 x
。type
选项容许用户抉择预测类型:*“链接”给出拟合值
- 因变量与正态分布的“链接”雷同。
- “系数”计算值为的系数
s
例如,
## 1## \[1,\] -0.9803## \[2,\] 2.2992## \[3,\] 0.6011## \[4,\] 2.3573## \[5,\] 1.7520
给出在=0.05时前5个观测值的拟合值。如果提供的多个值, s
则会生成预测矩阵。
用户能够自定义K折穿插验证。除所有 glmnet
参数外, cv.glmnet
还有非凡的参数,包含 nfolds
(次数), foldid
(用户提供的次数), type.measure
(用于穿插验证的损失):*“ deviance”或“ mse”
- “ mae”应用均匀绝对误差
举个例子,
cvfit = cv.glmnet(x, y, type.measure = "mse", nfolds = 20)
依据均方误差规范进行20折穿插验证。
并行计算也受 cv.glmnet
。为咱们在这里给出一个简略的比拟示例。
system.time(cv.glmnet(X, Y))
## user system elapsed ## 3.591 0.103 3.724
system.time(cv.glmnet(X, Y, parallel = TRUE))
## user system elapsed ## 4.318 0.391 2.700
从下面的倡议能够看出,并行计算能够大大放慢计算过程。
- “ lambda.min”:达到最小MSE的。
cvfit$lambda.min
## \[1\] 0.08307
## 21 x 1 sparse Matrix of class "dgCMatrix"## 1## (Intercept) 0.14936## V1 1.32975## V2 . ## V3 0.69096## V4 . ## V5 -0.83123## V6 0.53670## V7 0.02005## V8 0.33194## V9 . ## V10 . ## V11 0.16239## V12 . ## V13 . ## V14 -1.07081## V15 . ## V16 . ## V17 . ## V18 . ## V19 . ## V20 -1.04341
在这里,咱们应用雷同的k折,为抉择一个值。
将它们全副搁置在同一绘图上:
咱们看到lasso(alpha=1
)在这里体现最好。
系数上上限
假如咱们要拟合咱们的模型,但将系数限度为大于-0.7且小于0.5。这能够通过upper.limits
和 lower.limits
参数实现 :
通常,咱们心愿系数为正,因而咱们只能lower.limit
将其设置 为0。
惩办因素
此参数容许用户将独自的惩办因子利用于每个系数。每个参数的默认值为1,但能够指定其余值。特地是,任何penalty.factor
等于零的变量 都不会受到惩办
在许多状况下,某些变量可能是重要,咱们心愿始终保留它们,这能够通过将相应的惩办因子设置为0来实现:
咱们从标签中看到惩办因子为0的三个变量始终保留在模型中,而其余变量遵循典型的正则化门路并最终放大为0。
自定义图
有时,尤其是在变量数量很少的状况下,咱们想在图上增加变量标签。
咱们首先生成带有10个变量的一些数据,而后,咱们拟合glmnet模型,并绘制标准图。
咱们心愿用变量名标记曲线。在门路的开端搁置系数的地位。
多元正态
应用family = "mgaussian"
option 取得多元正态分布glmnet
。
显然,顾名思义,y不是向量,而是矩阵。后果,每个值的系数也是一个矩阵。
在这里,咱们解决以下问题:
这里,j是p×K系数矩阵的第j行,对于单个预测变量xj,咱们用每个系数K向量j的组套索罚分代替每个繁多系数的相对罚分。
咱们应用事后生成的一组数据进行阐明。
咱们拟合数据,并返回对象“ mfit”。
mfit = glmnet(x, y, family = "mgaussian")
如果为 standardize.response = TRUE
,则将因变量标准化。
为了可视化系数,咱们应用 plot
函数。
留神咱们设置了 type.coef = "2norm"
。在此设置下,每个变量绘制一条曲线,其值等于ℓ2范数。默认设置为 type.coef = "coef"
,其中为每个因变量创立一个系数图。
通过应用该函数coef
,咱们能够提取要求的值的系数, 并通过进行预测 。
## , , 1## ## y1 y2 y3 y4## \[1,\] -4.7106 -1.1635 0.6028 3.741## \[2,\] 4.1302 -3.0508 -1.2123 4.970## \[3,\] 3.1595 -0.5760 0.2608 2.054## \[4,\] 0.6459 2.1206 -0.2252 3.146## \[5,\] -1.1792 0.1056 -7.3353 3.248## ## , , 2## ## y1 y2 y3 y4## \[1,\] -4.6415 -1.2290 0.6118 3.780## \[2,\] 4.4713 -3.2530 -1.2573 5.266## \[3,\] 3.4735 -0.6929 0.4684 2.056## \[4,\] 0.7353 2.2965 -0.2190 2.989## \[5,\] -1.2760 0.2893 -7.8259 3.205
预测后果保留在三维数组中,其中前两个维是每个因变量的预测矩阵,第三个维示意因变量。
咱们还能够进行k折穿插验证。
咱们绘制后果 cv.glmnet
对象“ cvmfit”。
显示选定的最佳值
cvmfit$lambda.min
## \[1\] 0.04732
cvmfit$lambda.1se
## \[1\] 0.1317
逻辑回归
当因变量是分类的时,逻辑回归是另一个宽泛应用的模型。如果有两个可能的后果,则应用二项式散布,否则应用多项式。
二项式模型
对于二项式模型,假如因变量的取值为G = {1,2} 。示意yi = I(gi = 1)。咱们建模
能够用以下模式写
惩办逻辑回归的指标函数应用负二项式对数似然
咱们的算法应用对数似然的二次迫近,而后对所得的惩办加权最小二乘问题进行降落。这些形成了外部和内部循环。
出于阐明目标,咱们 从数据文件加载预生成的输出矩阵 x
和因变量 y
。
对于二项式逻辑回归,因变量y能够是两个级别的因子,也能够是计数或比例的两列矩阵。
glmnet
二项式回归的其余可选参数与正态分布的参数 简直雷同。不要遗记将family
选项设置 为“ binomial”。
fit = glmnet(x, y, family = "binomial")
像以前一样,咱们能够输入和绘制拟合的对象,提取特定处的系数,并进行预测。
逻辑回归略有不同,次要体现在抉择上 type
。“链接”和“因变量”不等价,“类”仅可用于逻辑回归。总之,*“链接”给出了线性预测变量
- “因变量”给出适合的概率
- “类别”产生对应于最大概率的类别标签。
- “系数”计算值为的系数
s
在上面的示例中,咱们在=0.05,0.01的状况下对类别标签进行了预测。
## 1 2 ## \[1,\] "0" "0"## \[2,\] "1" "1"## \[3,\] "1" "1"## \[4,\] "0" "0"## \[5,\] "1" "1"
对于逻辑回归,type.measure
:
- “偏差”应用理论偏差。
- “ mae”应用均匀绝对误差。
- “class”给出谬误分类谬误。
- “ auc”(仅实用于两类逻辑回归)给出了ROC曲线下的面积。
例如,
它应用分类误差作为10倍穿插验证的规范。
咱们绘制对象并显示的最佳值。
cvfit$lambda.min
## \[1\] 0.01476
cvfit$lambda.1se
## \[1\] 0.02579
coef
并且 predict
相似于正态分布案例,因而咱们省略了细节。咱们通过一些例子进行回顾。
## 31 x 1 sparse Matrix of class "dgCMatrix"## 1## (Intercept) 0.24371## V1 0.06897## V2 0.66252## V3 -0.54275## V4 -1.13693## V5 -0.19143## V6 -0.95852## V7 . ## V8 -0.56529## V9 0.77454## V10 -1.45079## V11 -0.04363## V12 -0.06894## V13 . ## V14 . ## V15 . ## V16 0.36685## V17 . ## V18 -0.04014## V19 . ## V20 . ## V21 . ## V22 0.20882## V23 0.34014## V24 . ## V25 0.66310## V26 -0.33696## V27 -0.10570## V28 0.24318## V29 -0.22445## V30 0.11091
如前所述,此处返回的后果仅针对因子因变量的第二类。
## 1 ## \[1,\] "0"## \[2,\] "1"## \[3,\] "1"## \[4,\] "0"## \[5,\] "1"## \[6,\] "0"## \[7,\] "0"## \[8,\] "0"## \[9,\] "1"## \[10,\] "1"
多项式模型
对于多项式模型,假如因变量变量的K级别为G = {1,2,…,K}。在这里咱们建模
设Y为N×K指标因变量矩阵,元素yiℓ= I(gi =ℓ)。而后弹性网惩办的负对数似然函数变为
是系数的p×K矩阵。k指第k列(对于后果类别k),j指第j行(变量j的K个系数的向量)。最初一个惩办项是||j|| q ,咱们对q有两个抉择:q∈{1,2}。当q = 1时,这是每个参数的套索惩办。当q = 2时,这是对特定变量的所有K个系数的分组套索惩办,这使它们在一起全为零或非零。
对于多项式状况,用法相似于逻辑回归,咱们加载一组生成的数据。
glmnet
除少数状况外,多项式逻辑回归中的可选参数 与二项式回归根本类似。
多项式回归的一个非凡选项是 type.multinomial
,如果容许,则容许应用分组的套索罚分 type.multinomial = "grouped"
。这将确保变量的多项式系数全副一起输出或输入,就像多元因变量一样。
咱们绘制后果。
咱们还能够进行穿插验证并绘制返回的对象。
预测最佳抉择的:
## 1 ## \[1,\] "3"## \[2,\] "2"## \[3,\] "2"## \[4,\] "1"## \[5,\] "1"## \[6,\] "3"## \[7,\] "3"## \[8,\] "1"## \[9,\] "1"## \[10,\] "2"
泊松模型
Poisson回归用于在假如Poisson误差的状况下对计数数据进行建模,或者在均值和方差成比例的状况下应用非负数据进行建模。泊松也是指数分布族的成员。咱们通常以对数建模:。
给定观测值的对数似然
和以前一样,咱们优化了惩办对数:
Glmnet应用内部牛顿循环和外部加权最小二乘循环(如逻辑回归)来优化此规范。
首先,咱们加载一组泊松数据。
再次,绘制系数。
像以前一样,咱们能够 别离应用coef
和 提取系数并在特定的处进行预测 predict
。
例如,咱们能够
## 21 x 1 sparse Matrix of class "dgCMatrix"## 1## (Intercept) 0.61123## V1 0.45820## V2 -0.77061## V3 1.34015## V4 0.04350## V5 -0.20326## V6 . ## V7 . ## V8 . ## V9 . ## V10 . ## V11 . ## V12 0.01816## V13 . ## V14 . ## V15 . ## V16 . ## V17 . ## V18 . ## V19 . ## V20 .
## 1 2## \[1,\] 2.4944 4.4263## \[2,\] 10.3513 11.0586## \[3,\] 0.1180 0.1782## \[4,\] 0.9713 1.6829## \[5,\] 1.1133 1.9935
咱们还能够应用穿插验证来找到最佳的,从而进行推断。
选项简直与正态族雷同,不同之处在于 type.measure
,“ mse”代表均方误差,“ mae”代表均值绝对误差。
咱们能够绘制 cv.glmnet
对象。
咱们还能够显示最佳的和相应的系数。
## 21 x 2 sparse Matrix of class "dgCMatrix"## 1 2## (Intercept) 0.031263 0.18570## V1 0.619053 0.57537## V2 -0.984550 -0.93212## V3 1.525234 1.47057## V4 0.231591 0.19692## V5 -0.336659 -0.30469## V6 0.001026 . ## V7 -0.012830 . ## V8 . . ## V9 . . ## V10 0.015983 . ## V11 . . ## V12 0.030867 0.02585## V13 -0.027971 . ## V14 0.032750 . ## V15 -0.005933 . ## V16 0.017506 . ## V17 . . ## V18 0.004026 . ## V19 -0.033579 . ## V20 0.012049 0.00993
Cox模型
Cox比例危险模型通常用于钻研预测变量与生存工夫之间的关系。
Cox比例危险回归模型,它不是间接考查 与X的关系,而是用 作为因变量,模型的根本模式为:
式中, 为自变量的偏回归系数,它是须从样本数据作出预计的参数; 是当X向量为0时, 的基准危险率,它是有待于从样本数据作出预计的量。简称为Cox回归模型。
因为Cox回归模型对 未作任何假设,因而Cox回归模型在解决问题时具备较大的灵活性;另一方面,在许多状况下,咱们只需预计出参数 (如因素剖析等),即便在 未知的状况下,仍可预计出参数 。这就是说,Cox回归模型因为含有 ,因而它不是齐全的参数模型,但仍可依据公式(1)作出参数 的预计,故Cox回归模型属于半参数模型。
公式能够转化为:
咱们应用一组事后生成的样本数据。用户能够加载本人的数据并遵循相似的过程。在这种状况下,x必须是协变量值的n×p矩阵-每行对应一个患者,每列对应一个协变量。y是一个n×2矩阵。
## time status## \[1,\] 1.76878 1## \[2,\] 0.54528 1## \[3,\] 0.04486 0## \[4,\] 0.85032 0## \[5,\] 0.61488 1
Surv
包中的 函数 survival
能够创立这样的矩阵。
咱们计算默认设置下的求解门路。
绘制系数。
提取特定值处的系数。
## 30 x 1 sparse Matrix of class "dgCMatrix"## 1## V1 0.37694## V2 -0.09548## V3 -0.13596## V4 0.09814## V5 -0.11438## V6 -0.38899## V7 0.24291## V8 0.03648## V9 0.34740## V10 0.03865## V11 . ## V12 . ## V13 . ## V14 . ## V15 . ## V16 . ## V17 . ## V18 . ## V19 . ## V20 . ## V21 . ## V22 . ## V23 . ## V24 . ## V25 . ## V26 . ## V27 . ## V28 . ## V29 . ## V30 .
函数 cv.glmnet
可用于计算Cox模型的k折穿插验证。
拟合后,咱们能够查看最佳值和穿插验证的误差图,帮忙评估咱们的模型。
如前所述,图中的左垂直线向咱们显示了CV误差曲线达到最小值的地位。左边的垂直线向咱们展现了正则化的模型,其CV误差在最小值的1个标准偏差之内。咱们还提取了最优。
cvfit$lambda.min
## \[1\] 0.01594
cvfit$lambda.1se
## \[1\] 0.04869
咱们能够查看模型中的协变量并查看其系数。
index.min
## \[1\] 0.491297 -0.174601 -0.218649 0.175112 -0.186673 -0.490250 0.335197## \[8\] 0.091587 0.450169 0.115922 0.017595 -0.018365 -0.002806 -0.001423## \[15\] -0.023429 0.001688 -0.008236
coef.min
## 30 x 1 sparse Matrix of class "dgCMatrix"## 1## V1 0.491297## V2 -0.174601## V3 -0.218649## V4 0.175112## V5 -0.186673## V6 -0.490250## V7 0.335197## V8 0.091587## V9 0.450169## V10 0.115922## V11 . ## V12 . ## V13 0.017595## V14 . ## V15 . ## V16 . ## V17 -0.018365## V18 . ## V19 . ## V20 . ## V21 -0.002806## V22 -0.001423## V23 . ## V24 . ## V25 -0.023429## V26 . ## V27 0.001688## V28 . ## V29 . ## V30 -0.008236
稠密矩阵
咱们的程序包反对稠密的输出矩阵,该矩阵能够高效地存储和操作大型矩阵,但只有少数几个非零条目。
咱们加载一组事后创立的样本数据。
加载100 * 20的稠密矩阵和 y
因向量。
## \[1\] "dgCMatrix"## attr(,"package")## \[1\] "Matrix"
咱们能够像以前一样拟合模型。
fit = glmnet(x, y)
进行穿插验证并绘制后果对象。
预测新输出矩阵 。例如,
## 1## \[1,\] 0.3826## \[2,\] -0.2172## \[3,\] -1.6622## \[4,\] -0.4175## \[5,\] -1.3941
参考文献
Jerome Friedman, Trevor Hastie and Rob Tibshirani. (2008).
Regularization Paths for Generalized Linear Models via Coordinate Descent
参考文献
1.matlab偏最小二乘回归(PLSR)和主成分回归(PCR)和主成分回归(PCR)")
2.R语言高维数据的主成分pca、 t-SNE算法降维与可视化剖析
3.主成分剖析(PCA)基本原理及剖析实例基本原理及剖析实例")
4.基于R语言实现LASSO回归剖析
5.应用LASSO回归预测股票收益数据分析
6.r语言中对lasso回归,ridge岭回归和elastic-net模型
7.r语言中的偏最小二乘回归pls-da数据分析
8.r语言中的偏最小二乘pls回归算法
9.R语言线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)