主要内容

lassoglm

广义线性模型的套索或弹性网正则化

描述

例子

B= lassoglm (Xy收益惩罚,最大似然拟合系数的广义线性模型的预测数据X以及回应y,其中的值y都是正态分布。的每一列B对应于一个特定的正则化系数λ.默认情况下,lassoglm的几何序列执行套索正则化λ值。

B= lassoglm (Xy分配使用概率分布进行套索正则化以拟合模型分配y

B= lassoglm (Xy分配名称,值用一个或多个名称-值对参数指定的附加选项拟合正则化广义线性回归。例如,“阿尔法”,0.5将弹性网设置为正则化方法,用参数表示α等于0.5。

例子

BFitInfo= lassoglm(___也返回结构FitInfo,其中包含关于模型拟合的信息,使用前面语法中的任何输入参数。

例子

全部折叠

构造一个具有冗余预测器的数据集,并通过使用识别这些预测器lassoglm

创建一个随机矩阵X100个观察结果和10个预测因子。创建正态分布响应y只使用四个预测因子和少量噪声。

rng默认的X = randn(100,10);权重= [0.6;0.5;0.7;0.4];y = X(:,[2 4 5 7])*weights + randn(100,1)*0.1;%小附加噪声

执行套索正则化。

B = lassoglm(X,y);

求第75次的系数向量λ价值B

B (:, 75)
ans =10×10 0.5431 0 0.3944 0.6173 0 0.3473 0 0 0

lassoglm标识并删除冗余预测符。

从泊松模型中构造数据,并通过使用确定重要的预测因子lassoglm

创建带有20个预测器的数据。只使用三个预测因子加上一个常数创建一个泊松响应变量。

rng默认的%用于再现性X = randn(100,20);权重= [.4;.2;.3];mu = exp(X(:,[5 10 15])*weights + 1);Y = poissrnd(mu);

构造数据泊松回归模型的交叉验证套索正则化。

[B,FitInfo] = lassoglm(X,y,“泊松”“简历”10);

检查交叉验证图,以查看λ正则化参数。

lassoPlot (B FitInfo“plottype”“简历”);传奇(“显示”%显示图例

图中包含一个轴。标题为Cross-Validated Deviance of Lasso Fit的轴包含5个类型为errorbar, line的对象。这些对象表示带有错误条的偏差,LambdaMinDeviance, Lambda1SE。

绿色圆圈和虚线定位λ交叉验证误差最小。蓝色圆圈和虚线定位交叉验证误差最小加上一个标准偏差的点。

求对应于两个识别点的非零模型系数。

idxLambdaMinDeviance = FitInfo.IndexMinDeviance;mincoefs = find(B(:,idxLambdaMinDeviance))
mincoefs =7×13 5 6 10 11 15 16
idxLambda1SE = FitInfo.Index1SE;min1coefs = find(B(:,idxLambda1SE))
min1coefs =3×15 10 15

来自最小加1标准误差点的系数正是用于创建数据的系数。

预测学生在上次考试中是否得到B或B以上lassoglm

加载examgrades数据集。将上次考试成绩转换为逻辑向量,其中1代表成绩在80分或以上0表示低于80级。

负载examgradesX =成绩(:,1:4);Y =成绩(:,5);yBinom = (y>=80);

将数据划分为训练集和测试集。

rng默认的设置种子的重现性c = cvpartition(yBinom,“坚持”, 0.3);idxTrain =训练(c,1);idxTest = ~idxTrain;XTrain = X(idxTrain,:);yTrain = yBinom(idxTrain);XTest = X(idxTest,:);yTest = yBinom(idxTest);

对训练数据进行3倍交叉验证的广义线性模型回归进行套索正则化。假设y是二项分布的。选择对应的模型系数λ期望偏差最小。

[B,FitInfo] = lassoglm(XTrain,yTrain,“二”“简历”3);idxLambdaMinDeviance = FitInfo.IndexMinDeviance;B0 = FitInfo.Intercept(idxLambdaMinDeviance);coef = [B0;B (:, idxLambdaMinDeviance)]
系数=5×1-21.1911 0.0235 0.0670 0.0693 0.0949

使用在前一步中找到的模型系数预测测试数据的考试成绩。使用指定二项式响应的链接函数分对数的.将预测值转换为逻辑向量。

yhat = glmval(coef,XTest,分对数的);yhatBinom = (yhat>=0.5);

使用混淆矩阵确定预测的准确性。

c = confusionchart(yTest,yhatBinom);

图包含一个confusimatrixchart类型的对象。

该函数正确预测了31个考试成绩。然而,该函数错误地预测了1名学生获得B或以上4学生的成绩低于B。

输入参数

全部折叠

预测器数据,指定为数值矩阵。每行代表一个观察结果,每列代表一个预测变量。

数据类型:|

响应数据,指定为数值向量、逻辑向量、分类数组或两列数值矩阵。

  • 分配不是“二”y长度是数字向量还是分类数组n,在那里n行数是多少X.响应y(我)对应于行X

  • 分配“二”y是下列之一:

    • 数字长度向量n,其中每个条目代表成功(1)或失败(0

    • 逻辑长度向量n,每个条目代表成功或失败

    • 长度的分类数组n,每个条目代表成功或失败

    • 两列数值矩阵,其中第一列包含每次观察的成功次数,第二列包含试验的总次数

数据类型:||逻辑|分类

响应数据的分布,指定为下列之一:

  • “正常”

  • “二”

  • “泊松”

  • “伽马”

  • 逆高斯分布的

lassoglm使用默认值链接功能对应于分配.属性指定另一个链接函数链接名称-值对参数。

名称-值对参数

的可选逗号分隔对名称,值参数。名字参数名称和价值对应的值。名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:lassoglm (X, y,“泊松”,“阿尔法”,0.5)假设响应值为泊松分布,进行弹性净正则化。的“阿尔法”,0.5名称-值对参数设置用于弹性网络优化的参数。

套索重量(l1)与山脊(l2)优化,指定为逗号分隔的对,由“α”在区间内是一个正的标量(0,1).的值Alpha = 1表示套索回归,α接近0采用岭回归,其他值表示弹性网优化。看到弹性网

例子:“阿尔法”,0.75

数据类型:|

用于估计偏差的交叉验证规范,指定为逗号分隔的对,由“简历”和以下其中之一:

  • “resubstitution”- - - - - -lassoglm使用X而且y拟合模型并估计偏差,无需交叉验证。

  • 正标量整数K- - - - - -lassoglm使用K倍交叉验证。

  • cvpartition对象本量利- - - - - -lassoglm中所示的交叉验证方法本量利.你不能使用“leaveout”分区与lassoglm

例子:“简历”,10

模型中非零系数的最大数目,指定为由逗号分隔的对组成“DFmax”一个正整数标量。lassoglm仅返回以下结果λ满足此条件的值。

例子:“DFmax”,25岁

数据类型:|

正则化系数,指定为逗号分隔的对,由“λ”和一个非负值的向量。看到套索

  • 如果你不供应λ,然后lassoglm估计的最大值λ这给出了一个非空模型。在这种情况下,LambdaRatio给出序列的最小值与最大值之比,和NumLambda给出向量的长度。

  • 如果你提供λ,然后lassoglm忽略了LambdaRatio而且NumLambda

  • 如果标准化真正的,然后λ的值集是否用于拟合模型X标准化的数据,其均值为0,方差为1。

的几何序列NumLambda价值,只有用最大的价值才能产生B0

数据类型:|

最小与最大之比λ价值时,你不提供λ,指定为逗号分隔的对,由“LambdaRatio”一个正标量。

如果你设置LambdaRatio= 0,则lassoglm的默认序列λ值并将最小的值替换为0

例子:依照“LambdaRatio”,1

数据类型:|

均值之间的映射µ反应和线性预测的关系Xb,指定为逗号分隔的对,由“链接”这个表中的一个值。

价值 描述
“comploglog”

日志(日志((1 -µ))) =Xb

“身份”,默认为分发“正常”

µXb

“日志”,默认为分发“泊松”

日志(µ) =Xb

分对数的,默认为分发“二”

日志(µ/ (1 -µ)) =Xb

“重对数”

日志(日志(µ)) =Xb

“probit”

Φ1µ) =Xb,其中Φ为正态(高斯)累积分布函数

“互惠”,默认为分发“伽马”

µ1Xb

p(一个数字),默认为分布逆高斯分布的(与p= 2

µpXb

窗体的单元格数组{fl fd fi},包含三个函数句柄@,它们定义了链接(FL),则该链接的导数(FD),以及反向链接(FI).或者,一个处理字段的函数结构链接包含FL,田野导数包含FD,和田野包含FI

用户指定的链接函数(参见自定义链路功能

例子:“链接”、“概率单位”

数据类型:字符|字符串|||细胞

允许的最大迭代数,指定为由逗号分隔的对组成的“麦克斯特”一个正整数标量。

如果算法执行麦克斯特在达到收敛公差前进行迭代RelTol,则函数停止迭代并返回警告消息。

该函数可以返回多个警告NumLambda大于1

例子:“麦克斯特”,1 e3

数据类型:|

交叉验证的蒙特卡洛重复数,指定为逗号分隔的对,由“MCReps”一个正整数标量。

  • 如果简历“resubstitution”或者一个cvpartition类型的“resubstitution”,然后MCReps必须1

  • 如果简历是一个cvpartition类型的“坚持”,然后MCReps必须大于1

例子:“MCReps”,2

数据类型:|

的数量λlassoglm当你不供应时使用λ,指定为逗号分隔的对,由“NumLambda”一个正整数标量。lassoglm可以返回小于NumLambda如果拟合的偏差下降到零偏差(没有任何预测因子的拟合偏差)的阈值分数以下,则拟合X).

例子:“NumLambda”,150年

数据类型:|

附加的预测变量,指定为逗号分隔的对,由“抵消”和一个行数相同的数字向量X.的lassoglm函数保持的系数值抵消固定在1.0

数据类型:|

选项,以并行交叉验证并指定随机流,指定为逗号分隔的对,由“选项”还有一个结构。此选项需要并行计算工具箱™。

创建选项结构statset.选项字段为:

  • UseParallel—设置为真正的并行计算并行计算默认为

  • UseSubstreams—设置为真正的并行计算以可重复的方式并行计算为了重现性,设置到允许子流的类型:“mlfg6331_64”“mrg32k3a”.默认为

  • ——一个RandStream由一个这样的对象组成的对象或单元格数组。如果您没有指定,然后lassoglm使用默认流。

例子:“选项”,statset (UseParallel,真的)

数据类型:结构体

预测变量的名称,按照它们出现的顺序X,指定为逗号分隔的对,由“PredictorNames”和字符向量的字符串数组或单元格数组。

例子:PredictorNames,{‘高’,‘重’,‘年龄’}

数据类型:字符串|细胞

坐标下降算法的收敛阈值[3],指定为逗号分隔的对,由“RelTol”一个正标量。时,当系数向量的连续估计不同时,算法终止l2定额相对少于定额RelTol

例子:“RelTol”,2 e - 3

数据类型:|

用于标准化预测器数据的标志X在拟合模型之前,指定由逗号分隔的对组成“标准化”,要么真正的.如果标准化真正的,则X数据被缩放到均值为0,方差为1。标准化影响正则化是应用于标准化标度上的系数还是应用于原始标度上的系数。结果总是在原始数据尺度上显示。

例子:“标准化”,假的

数据类型:逻辑

观察权重,由逗号分隔的对组成“重量”一个非负向量。权重长度n,在那里n的行数是多少X.至少有两个值为正数。

数据类型:|

输出参数

全部折叠

拟合系数,作为数字矩阵返回。B是一个p——- - - - - -l矩阵,p预测器(列)的数量在吗X,lλ值。可以指定的个数λ值使用NumLambda名称-值对参数。

截距项对应的系数是一个场FitInfo

数据类型:|

广义线性模型的拟合信息,以结构形式返回本表中描述的字段。

FitInfo 描述
拦截 截距项β0对于每个线性模型,a1——- - - - - -l向量
λ 升序的Lambda参数,a1——- - - - - -l向量
α 的值α参数,标量
DF 非零系数的个数B对于每一个值λ,一个1——- - - - - -l向量
异常

的各值拟合模型的偏差λ,一个1——- - - - - -l向量

如果模型是交叉验证的,则异常表示通过交叉验证计算的应用于新数据的模型的估计预期偏差。否则,异常是拟合模型应用于用于执行拟合的数据的偏差。

PredictorNames 的值PredictorNames参数,存储为字符向量的单元格数组

如果你设置简历用于交叉验证的名称-值对参数FitInfo结构包含这些附加字段。

FitInfo 描述
SE 标准误差异常为每一个λ为交叉验证时计算的,则a1——- - - - - -l向量
LambdaMinDeviance λ通过交叉验证计算的期望偏差最小的值为标量
Lambda1SE 最大λ这样的价值异常是否在最小值的一个标准误差范围内,一个标量
IndexMinDeviance 指数λ用值LambdaMinDeviance,标量
Index1SE 指数λ用值Lambda1SE,标量

更多关于

全部折叠

链接功能

链接函数fμ)用均值映射分布μ到一个有数据的线性模型X系数向量b使用公式

fμ) =Xb

链接函数的公式请参见链接名称-值对参数描述。该表列出了每个发行版通常使用的链接函数。

分配家庭 缺省链路功能 其他典型链路功能
“正常” “身份”
“二” 分对数的 “comploglog”“重对数”“probit”
“泊松” “日志”
“伽马” “互惠”
逆高斯分布的 2

套索

的非负值λlassoglm解决问题

最小值 β 0 β 1 N 异常 β 0 β + λ j 1 p | β j |

  • 方程中的函数Deviance是模型对截距响应的拟合偏差β0预测系数β.越轨的公式取决于分配提供给的参数lassoglm.最小化λ-惩罚偏差等同于最大化λ处罚loglikelihood。

  • N是观测的数量。

  • λ非负正则化参数是否对应于的一个值λ

  • 的参数β0而且β标量和长度向量p,分别。

作为λ增加,非零组件的数目β减少。

套索问题涉及l1规范的β,与弹性网算法相比。

弹性网

α严格在0到1之间,而且是非负的λ弹性网解决了这一问题

最小值 β 0 β 1 N 异常 β 0 β + λ P α β

在哪里

P α β 1 α 2 β 2 2 + α β 1 j 1 p 1 α 2 β j 2 + α | β j |

弹力网与套索时一样α= 1。对于其他值α,罚款期限Pαβ)在l1规范的β平方l2规范的β.作为α向0收缩,弹性网接近回归。

参考文献

[1] Tibshirani, R.,“通过套索的回归收缩和选择”。皇家统计学会杂志。B辑,第58卷,1996年第1期,第267-288页。

[2]邹市明,H.和T.黑斯蒂。通过弹性网的正则化和变量选择皇家统计学会杂志。B辑,第67卷,第2期,2005年,第301-320页。

[3]弗里德曼,J., R.蒂布谢拉尼,T.黑斯蒂。通过坐标下降的广义线性模型的正则化路径。统计软件杂志。第33卷,2010年第1期。https://www.jstatsoft.org/v33/i01

哈斯蒂、T.、R.蒂布谢拉尼和J.弗里德曼。统计学习的要素。第二版。纽约:施普林格,2008。

[5]多布森a.j.广义线性模型导论。第二版。纽约:查普曼和霍尔/CRC出版社,2002年。

[6]麦cullagh P.和J. A. Nelder。广义线性模型。第二版。纽约:查普曼和霍尔/CRC出版社,1989年。

[7]科莱特D。二进制数据建模。第二版。纽约:查普曼和霍尔/CRC出版社,2003年。

扩展功能

在R2012a中引入