主要内容

lassoglm

套索或弹性净正规化广义线性模型

描述

例子

B= lassoglm (X,y)返回处罚,最大似然拟合系数的广义线性模型预测数据X和响应y中的值y假定有一个正常的概率分布。每一列的B对应于一个特定的正则化系数λ。默认情况下,lassoglm使用几何序列执行套索正规化λ值。

B= lassoglm (X,y,分配)执行套索正规化适合使用概率分布模型分配y

B= lassoglm (X,y,分配,名称,值)正规化广义线性回归符合附加选项指定一个或多个参数名称-值对。例如,“阿尔法”,0.5集弹性网的正则化方法,参数α等于0.5。

例子

(B,FitInfo)= lassoglm (___)还返回结构FitInfo的配合,其中包含的信息模型,使用任何输入参数在前面的语法。

例子

全部折叠

构造一个数据集与冗余预测和识别这些预测使用lassoglm

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

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

执行套索正规化。

B = lassoglm (X, y);

寻找第75系数向量λ价值B

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

lassoglm识别和消除了冗余的预测因子。

构建数据从一个泊松模型,并确定使用的重要预测因子lassoglm

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

rng默认的%的再现性20 X = randn (100);重量= (。4;2。3);μ= exp (X(:[5 10 15]) *重量+ 1);y = poissrnd(μ);

建立一个旨在套索正规化的泊松回归模型的数据。

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

检查交叉验证情节的影响λ正则化参数。

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

图包含一个坐标轴对象。坐标轴对象与标题旨在异常的套索,包含λ,ylabel异常包含5 errorbar类型的对象,线。一个或多个行显示的值只使用这些对象标记代表异常误差,LambdaMinDeviance Lambda1SE。

绿色圆圈和虚线定位λ以最小交叉验证错误。蓝色的圆和虚线定位与最小交叉验证误差点+一个标准差。

找到相对应的非零系数模型确定的两个点。

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

minimum-plus-one标准错误点的系数正是这些系数用于创建数据。

预测学生在他们最后得到了一个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:);欧美= yBinom (idxTest);

执行套索正规化的广义线性模型回归三倍交叉验证训练数据。假设的值y二项分布。选择模型系数对应λ用最小的预期偏差。

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

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

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

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

c = confusionchart(欧美,yhatBinom);

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

函数正确预测31日考试成绩。然而,函数不正确预测,1学生收到B或以上4学生获得年级低于B。

创建一个矩阵XNp维正态变量,在那里N又大又p= 1000。创建一个响应向量y从模型中y = X *β+噪音,在那里β是一个向量的系数非零值的50%。

rng默认的%的再现性N = 1 e4;%的样本数量p = 1 e3;%的数量特征X = randn(氮、磷);β= 1 + 3 *兰德(p, 1);%乘法系数activep = randperm (p, p / 2);% 50%非零系数y = X (:, activep) *β(activep) + randn (N - 1) * 0.1;%添加噪声

构建套索适合不使用协方差矩阵。创建的时间。

B = lassoglm (X, y,“正常”,UseCovariance = false);为可靠的计时数据%热身套索抽搐B = lassoglm (X, y,“正常”,UseCovariance = false);timefalse = toc
timefalse = 2.9323

构建套索适合使用协方差矩阵。创建的时间。

B2 = lassoglm (X, y,“正常”,UseCovariance = true);为可靠的计时数据%热身套索抽搐B2 = lassoglm (X, y,“正常”,UseCovariance = true);timetrue = toc
timetrue = 0.7596

协方差矩阵的装配时间小于时间没有它。视图的加速因素使用协方差矩阵的结果。

加速= timefalse / timetrue
加速= 3.8603

检查返回的系数BB2是相似的。

规范(B-B2) /规范(B)
ans = 3.6556 e15汽油

结果是几乎相同的。

输入参数

全部折叠

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

数据类型:|

响应数据,指定为一个数字矢量,逻辑向量分类数组,或两列数字矩阵。

  • 分配不是“二”,y是一个数值向量或分类数组的长度n,在那里n的行数在吗X。响应y(我)对应于行X

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

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

    • 逻辑向量的长度n,其中每个条目表示成功或失败

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

    • 两列数字矩阵,第一列包含成功的数量为每个观察和第二列包含试验的总数

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

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

  • “正常”(默认)

  • “二”

  • “泊松”

  • “伽马”

  • 逆高斯分布的

lassoglm使用默认的链接功能对应于分配。指定另一个链接功能使用链接名称-值对的论点。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

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

重量的套索(l1)与脊(l2)优化,指定为逗号分隔组成的“α”和积极的标量值的区间(0,1)。的值α= 1代表套索回归,α接近0岭回归方法,其他值代表弹性网优化。看到弹性网

例子:“阿尔法”,0.75

数据类型:|

协方差矩阵的大小以兆字节为单位,指定为一个积极的标量或“最大”。的lassoglm函数可以用协方差矩阵拟合的时候UseCovariance参数是真正的“汽车”

如果UseCovariance真正的“汽车”CacheSize“最大”,lassoglm可以尝试分配一个超过可用内存的协方差矩阵。在这种情况下,MATLAB®一个错误的问题。

例子:“CacheSize”、“最大”

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

交叉验证规范评估偏差,指定为逗号分隔组成的“简历”和下列之一:

  • “resubstitution”- - - - - -lassoglm使用Xy适合的模型和估计没有交叉验证异常。

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

  • cvpartition对象本量利- - - - - -lassoglm使用交叉验证方法表达本量利。你不能使用“leaveout”分区与lassoglm

例子:“简历”,10

最大数量的非零系数模型,指定为逗号分隔组成的“DFmax”和一个正整数标量。lassoglm返回结果仅供λ值,满足这一标准。

例子:“DFmax”, 25岁

数据类型:|

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

  • 如果你不供应λ,然后lassoglm估计的最大价值λ让null模型。在这种情况下,LambdaRatio给的比例最小的最大的价值序列,和NumLambda向量的长度。

  • 如果你提供λ,然后lassoglm忽略了LambdaRatioNumLambda

  • 如果标准化真正的,然后λ是一组值用来适合的模型吗X数据标准化的零均值和方差。

默认是一个几何序列NumLambda值,只有能够产生最大的价值B=0

数据类型:|

最小的最大比例λ值时不供应λ,指定为逗号分隔两人组成的“LambdaRatio”和积极的标量。

如果你设置LambdaRatio= 0,那么lassoglm生成一个默认的序列λ价值观和替换最小的一个0

例子:依照“LambdaRatio”, 1

数据类型:|

之间的映射的意思µ响应和线性预测Xb,指定为逗号分隔两人组成的“链接”在这个表的一个值。

价值 描述
“comploglog”

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

“身份”,默认的分布“正常”

µ=Xb

“日志”,默认的分布“泊松”

日志(µ)=Xb

分对数的,默认的分布“二”

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

“重对数”

日志(日志(µ))=Xb

“probit”

Φ1(µ)=Xb,Φ正常累积分布函数(高斯)

“互惠”,默认的分布“伽马”

µ1=Xb

p(数量),默认的分布逆高斯分布的(与p= 2)

µp=Xb

单元阵列的形式{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——设置为真正的以可再生的方式并行计算。再现性,集一种允许substreams:“mlfg6331_64”“mrg32k3a”。默认值是

  • ——一个RandStream一个这样的对象的对象或单元阵列组成。如果你不指定,然后lassoglm使用默认的流。

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

数据类型:结构体

预测变量的名字,在它们出现的顺序X,指定为逗号分隔两人组成的“PredictorNames”和一个字符串数组或单元阵列的特征向量。

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

数据类型:字符串|细胞

收敛阈值坐标下降算法[3],指定为逗号分隔两人组成的“RelTol”和积极的标量。算法终止时连续的估计系数向量的不同l2规范的相对数量不足RelTol

例子:“RelTol”, 2 e - 3

数据类型:|

为规范预测数据X在拟合模型之前,指定为逗号分隔组成的“标准化”,要么真正的。如果标准化真正的,那么X数据是按比例缩小的零均值和方差的一个。标准化影响是否应用正则化系数标准化规模或原来的规模。结果总是在原始数据规模。

例子:“标准化”,假的

数据类型:逻辑

指定的指示使用协方差矩阵拟合“汽车”或一个逻辑标量。

  • “汽车”原因lassoglm尝试使用协方差矩阵拟合当观测的数量大于问题变量的数量,链接=“身份”,分配=“正常”。这次尝试失败当内存不够。找出是否lassoglm用协方差矩阵拟合研究UseCovariance场的FitInfo输出。

  • 真正的原因lassoglm用协方差矩阵所需配件只要大小不超过CacheSize。如果所需的协方差矩阵的大小超过了CacheSize,lassoglm发出一个警告,不使用协方差矩阵拟合。

  • 原因lassoglm不要使用协方差矩阵拟合。

可以使用协方差矩阵拟合速度比不使用,尤其是对正态分布的响应,但可能需要更多的内存。看到对拟合lassoglm使用相关矩阵。速度增加数值稳定性有负面的影响。有关详细信息,请参见坐标下降算法

例子:“UseCovariance”,真的

数据类型:逻辑|字符|字符串

观察体重、指定为逗号分隔组成的“重量”和一个负的向量。权重长度n,在那里n的行数X。至少两个值必须是积极的。

数据类型:|

输出参数

全部折叠

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

相对应的系数截距项是一个字段FitInfo

数据类型:|

合适的广义线性模型的信息,作为一个结构返回这个表中描述的领域。

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

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

如果模型旨在,那么的值异常代表模型的估计预期偏差适用于新数据,通过交叉验证计算。否则,异常异常的模型应用于数据用于执行安装。

PredictorNames 的价值PredictorNames参数,存储单元阵列的特征向量
UseCovariance 逻辑值指示协方差矩阵是否用于拟合。如果协方差计算和使用,这一领域真正的。否则,这个字段

如果你设置简历名称-值对论证旨在,FitInfo结构包含这些额外的字段。

FitInfo 描述
SE 的标准误差异常为每一个λ,在交叉验证,计算1——- - - - - -l向量
LambdaMinDeviance λ价值与最低预期偏差,通过交叉验证计算,一个标量
Lambda1SE 最大λ值,这样异常是在一个标准误差的最小值,一个标量吗
IndexMinDeviance 指数λ与价值LambdaMinDeviance,一个标量
Index1SE 指数λ与价值Lambda1SE,一个标量

更多关于

全部折叠

链接功能

一个链接功能f(μ)地图一个分布的意思μ线性模型与数据X和系数向量b使用这个公式

f(μ)=Xb

你可以找到公式链接的功能链接名称-值对参数描述。此表列出了链接的函数通常用于每个分布。

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

套索

非负价值λ,lassoglm解决问题

最小值 β 0 , β ( 1 N 异常 ( β 0 , β ) + λ j = 1 p | β j | )

  • 这个方程的功能异常是模型的异常适合使用拦截的反应β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,弹性网的方法回归。

算法

全部折叠

坐标下降算法

lassoglm适合许多值λ同时通过一个有效的过程坐标下降基于弗里德曼,Tibshirani, Hastie[3]。有两个主要程序代码路径取决于配件使用协方差矩阵。你可以影响这个选择UseCovariance名称-值参数。

lassoglm用协方差矩阵N数据点,D预测,配件有一个粗略的计算复杂度D * D。没有协方差矩阵,计算复杂度N * D。所以,通常情况下,使用时可以更快的协方差矩阵N > D,默认的“汽车”的设置UseCovariance参数使得这种选择。用协方差矩阵的原因lassoglm减去大量比否则,可减少数值稳定。算法的细节差异,请参阅[3]。为一个时间和精度的比较差异,明白了对拟合lassoglm使用相关矩阵

引用

[1]Tibshirani, r .“回归收缩和通过套索选择。”英国皇家统计学会杂志》上。系列B卷。58岁的1号,1996年,页267 - 288。

[2]邹,H。,T. Hastie. “Regularization and Variable Selection via the Elastic Net.”英国皇家统计学会杂志》上。系列B卷。67年,2号,2005年,页301 - 320。

[3]弗里德曼,J。,R. Tibshirani, and T. Hastie. “Regularization Paths for Generalized Linear Models via Coordinate Descent.”统计软件》杂志上。33卷,1号,2010年。https://www.jstatsoft.org/v33/i01

[4]Hastie, T。,R. Tibshirani, and J. Friedman.统计学习的元素。第二版。纽约:施普林格,2008年。

[5]多布森,a·J。介绍了广义线性模型。第二版。纽约:查普曼&大厅/ CRC出版社,2002年。

[6]McCullagh, P。,J. A. Nelder.广义线性模型。第二版。纽约:查普曼&大厅/ CRC出版社,1989年。

[7]Collett D。造型二进制数据。第二版。纽约:查普曼&大厅/ CRC出版社,2003年。

扩展功能

版本历史

介绍了R2012a