主要内容

lassoglm

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

描述

例子

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

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

B= lassoglm (Xy分配名称,价值符合正常的概括线性回归,其中包含一个或多个名称 - 值对参数指定的附加选项。例如,'alpha',0.5设弹性网为正则化方法,带参数α等于0.5。

例子

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

例子

全部收缩

构造一个具有冗余预测因子的数据集,并使用lassoglm

创建一个随机矩阵X有100个观察和10个预测因子。创建正常分布的响应y只使用四种预测和少量的噪声。

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

执行套索正规化。

B = lassoglm (X, y);

找到75th的系数矢量λ价值B

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

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

从泊松模型构建数据,并通过使用lassoglm

使用20个预测器创建数据。仅使用三个预测器加上常数创建泊松响应变量。

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

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

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

检查交叉验证情节以查看效果λ正则化参数。

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

图中包含一个坐标轴。标题为“套索Fit交叉验证偏差”的轴包含5个类型为错误条、线的对象。这些对象用错误条、LambdaMinDeviance、Lambda1SE表示偏差。

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

找到与两个已识别点对应的非零模型系数。

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

来自最小加上一个标准错误点的系数正是用于创建数据的系数。

预测学生在上次考试中是否获得了B或以上的成绩lassoglm

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

负载考试x =等级(:,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)]
COEF =5×1-21.1911 0.0235 0.0670 0.0693 0.0949

使用前一步中找到的模型系数预测测试数据的考试成绩。使用分对数的.将预测值转换为逻辑向量。

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

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

c =困惑的园林(YTEST,Yhatbinom);

Figure包含一个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)在响应值为泊松分布的情况下进行弹性网正则化。的'alpha',0.5名称-值对参数设置弹性网络优化中使用的参数。

套索重量(l1)对脊(l2)优化,指定为逗号分隔对,由'Α'在间隔中和正标量值(0,1).的值α= 1代表套索回归,α接近0方法岭回归,其他值代表弹性网优化。看到弹性网

例子:'alpha',0.75

数据类型:|

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

  • '重新提交'- - - - - -lassoglm用途Xy拟合模型并估计偏差,无需交叉验证。

  • 正标量整数K- - - - - -lassoglm用途K- 折扣交叉验证。

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

例子:'cv',10

模型中的最大非零系数数,指定为包括的逗号分隔对“DFmax”和一个正整数标量。lassoglm只返回结果λ满足此标准的值。

例子:'dfmax',25

数据类型:|

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

  • 如果你不提供λ,然后lassoglm估计最大的价值λ这就得到了一个非空模型。在这种情况下,lambdaratio给出序列中最小值与最大值的比值,并且NumLambda给出向量的长度。

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

  • 如果标准化真的,然后λ是否使用一组值来匹配模型X标准化的数据具有零平均值和一个方差。

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

数据类型:|

最小到最大的比率λ当您不提供时的价值λ,指定为逗号分隔的配对组成“LambdaRatio”和正标量。

如果你设置了lambdaratio= 0,那么lassoglm生成的默认序列为λ值并将最小的值替换为0

例子:依照“LambdaRatio”,1

数据类型:|

平均值之间的映射µ和线性预测器Xb,指定为逗号分隔的配对组成'关联'和这个表中的一个值。

价值 描述
“comploglog”

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

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

µXb

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

日志(µ) =Xb

分对数的,默认为分发'二重子'

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

“重对数”

log(-log(µ))=Xb

“probit”

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

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

µ1Xb

p(一个数字),默认为分发'逆高斯'(与p= -2

µpXb

窗体的单元格数组{FL FD FI},包含三个函数句柄,定义链接(FL),链接的衍生物(FD),以及反向链接(FI).或者,函数结构处理字段链接包含FL,这个领域导数包含FD,和田野包含FI

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

例子:'链接','probit'

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

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

如果算法执行maxiter.在达到融合公差之前的迭代RelTol,则函数停止迭代并返回一条警告消息。

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

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

数据类型:|

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

  • 如果简历'重新提交'或者cvpartition类型的'重新提交',然后mcreps.必须是1

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

例子:'mcreps',2

数据类型:|

的数量λlassoglm当您不提供时使用λ,指定为逗号分隔的配对组成“NumLambda”和一个正整数标量。lassoglm可以返回少于NumLambda如果拟合的偏差低于零偏差(没有任何预测因素的拟合偏差)的阈值分数,则拟合X).

例子:'numlambda',150

数据类型:|

附加预测器变量,指定为逗号分隔的对组成'抵消'和一个具有相同行数的数字矢量X.的lassoglm功能保持系数值抵消固定在1.0

数据类型:|

选项交叉验证并行和指定随机流,指定为逗号分隔对组成“选项”和结构。此选项需要并行计算工具箱™。

创建选项结构statset.选项字段包括:

  • 使用指α.——设置为真的并行计算。默认为

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

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

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

数据类型:结构体

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

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

数据类型:字符串|细胞

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

例子:'Reltol',2E-3

数据类型:|

用于标准化预测器数据的标志X在拟合模型之前,指定为逗号分隔对组成“标准化”,要么真的要么.如果标准化真的,那么X数据被缩放为具有零均值和一个方差。标准化影响正则化是否适用于标准化比例尺或原始比例尺的系数。结果总是在原始数据尺度上呈现。

例子:“标准化”,假的

数据类型:逻辑

观察权重,指定为逗号分隔的配对组成“重量”和一个非负向量。权重长度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, Vol. 58, No. 1, 1996, pp. 267-288。

[2]邹,H.和Hastie。“通过弹性网进行正则化和可变选择。”皇家统计学会杂志。系列B, Vol. 67, No. 2, 2005, pp. 301-320。

[3] Friedman, J., R. Tibshirani, T. Hastie。“基于坐标下降的广义线性模型正则化路径”统计软件杂志。卷。33,2010年第1号。https://www.jstatsoft.org/v33/i01

Hastie, T., R. Tibshirani, J. Friedman。统计学习的要素。第二版。纽约:施普林格,2008。

多布森广义线性模型导论。第二版。纽约:查普曼与霍尔/CRC出版社,2002。

P. McCullagh和J. A. Nelder。广义线性模型。第二版。纽约:1989年Chapman&Hall / CRC Press。

[7] Collett D。造型二进制数据。第二版。纽约:查普曼与霍尔/CRC出版社,2003。

扩展功能

在R2012A介绍