用于广义线性模型的套索或弹性网正则化
构造一个具有冗余预测因子的数据集,并使用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”,“简历”);传奇(“显示”)%显示传奇
绿色圆圈和虚线定位λ
以最小的交叉验证错误。蓝色圆圈和虚线定位交叉验证误差最小加上一个标准差的点。
找到与两个已识别点对应的非零模型系数。
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);
该函数正确预测了31个考试成绩。然而,该函数错误地预测了1名学生获得B或以上的成绩4
学生的成绩在B以下。
X
- - - - - -预测数据预测器数据,指定为数字矩阵。每一行代表一个观察结果,每一列代表一个预测变量。
数据类型:单
|双
指定可选的逗号分隔的对名称,价值
参数。的名字
参数名和价值
是相应的价值。的名字
必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家
.
lassoglm (X, y,“泊松”,“阿尔法”,0.5)
在响应值为泊松分布的情况下进行弹性网正则化。的'alpha',0.5
名称-值对参数设置弹性网络优化中使用的参数。
'Α'
- - - - - -套索与脊线优化的重量1
(默认)|积极的标量套索重量(l1)对脊(l2)优化,指定为逗号分隔对,由'Α'
在间隔中和正标量值(0,1)
.的值α= 1
代表套索回归,α
接近0
方法岭回归,其他值代表弹性网优化。看到弹性网.
例子:'alpha',0.75
数据类型:单
|双
“简历”
- - - - - -估计偏差的交叉验证规范'重新提交'
(默认)|正整数标量|cvpartition
对象用于估计偏差的交叉验证规范,指定为逗号分隔对组成“简历”
以及以下其中之一:
正标量整数K
- - - - - -lassoglm
用途K
- 折扣交叉验证。
cvpartition
对象本量利
- - - - - -lassoglm
使用表示的交叉验证方法本量利
.你不能用“leaveout”
分区与lassoglm
.
例子:'cv',10
“DFmax”
- - - - - -最大非零系数数正
(默认)|正整数标量“LambdaRatio”
- - - - - -最小与最大的比率λ
值1的军医
(默认)|积极的标量最小到最大的比率λ
当您不提供时的价值λ
,指定为逗号分隔的配对组成“LambdaRatio”
和正标量。
如果你设置了lambdaratio
= 0,那么lassoglm
生成的默认序列为λ
值并将最小的值替换为0
.
例子:依照“LambdaRatio”,1
数据类型:单
|双
'关联'
- - - - - -反应均值与线性预测器之间的映射“comploglog”
|“身份”
|“日志”
|分对数的
|“重对数”
|……平均值之间的映射µ和线性预测器Xb,指定为逗号分隔的配对组成'关联'
和这个表中的一个值。
价值 | 描述 |
---|---|
“comploglog” |
日志(日志((1 -µ))) =Xb |
|
µ=Xb |
|
日志(µ) =Xb |
|
日志(µ/(1 -µ))=Xb |
|
log(-log(µ))=Xb |
“probit” |
Φ1(µ) =Xb,其中Φ为正态(高斯)累积分布函数 |
'互惠的' ,默认为分发“伽马” |
µ1=Xb |
|
µp=Xb |
窗体的单元格数组 |
用户指定的链接函数(参见自定义链接功能) |
例子:'链接','probit'
数据类型:字符
|字符串
|单
|双
|细胞
“MCReps”
- - - - - -交叉验证的蒙特卡罗重复数量1
(默认)|正整数标量交叉验证的蒙特卡罗重复数量,指定为逗号分隔的对组成“MCReps”
和一个正整数标量。
如果简历
是'重新提交'
或者cvpartition
类型的'重新提交'
,然后mcreps.
必须是1
.
如果简历
是一个cvpartition
类型的“坚持”
,然后mcreps.
必须大于1
.
例子:'mcreps',2
数据类型:单
|双
'抵消'
- - - - - -额外的预测变量附加预测器变量,指定为逗号分隔的对组成'抵消'
和一个具有相同行数的数字矢量X
.的lassoglm
功能保持系数值抵消
固定在1.0
.
数据类型:单
|双
“选项”
- - - - - -并行交叉验证的选项并指定随机流选项交叉验证并行和指定随机流,指定为逗号分隔对组成“选项”
和结构。此选项需要并行计算工具箱™。
创建选项
结构statset
.选项字段包括:
使用指α.
——设置为真的
并行计算。默认为假
.
UseSubstreams
——设置为真的
并行计算以可复制的方式并行计算再现性,集流
到允许子流的类型:“mlfg6331_64”
要么“mrg32k3a”
.默认为假
.
流
——一个RandStream
对象或单元格数组,其中包含一个这样的对象。如果没有指定流
,然后lassoglm
使用默认流。
例子:“选项”,statset (UseParallel,真的)
数据类型:结构体
“PredictorNames”
- - - - - -预测变量的名称{}
(默认)|字符串数组|字符向量的单元格数组预测变量的名称,按它们出现的顺序排列X
,指定为逗号分隔的配对组成“PredictorNames”
以及字符向量的字符串数组或单元格数组。
例子:PredictorNames,{‘高’,‘重’,‘年龄’}
数据类型:字符串
|细胞
“RelTol”
- - - - - -坐标下降算法的收敛阈值1的军医
(默认)|积极的标量坐标下降算法的收敛阈值[3],指定为逗号分隔的配对组成“RelTol”
和正标量。当系数向量的连续估计值不同时,算法终止l2低于标准的相对数量RelTol
.
例子:'Reltol',2E-3
数据类型:单
|双
“标准化”
- - - - - -在拟合模型之前对预测数据进行标准化标记真的
(默认)|假
用于标准化预测器数据的标志X
在拟合模型之前,指定为逗号分隔对组成“标准化”
,要么真的
要么假
.如果标准化
是真的
,那么X
数据被缩放为具有零均值和一个方差。标准化
影响正则化是否适用于标准化比例尺或原始比例尺的系数。结果总是在原始数据尺度上呈现。
例子:“标准化”,假的
数据类型:逻辑
“重量”
- - - - - -观察权重1 / n *的(n, 1)
(默认)|负的向量观察权重,指定为逗号分隔的配对组成“重量”
和一个非负向量。权重
长度n,在那里n行数是多少X
.至少有两个值必须是正的。
数据类型:单
|双
FitInfo
- 适合模型的信息广义线性模型的拟合信息,返回为具有本表中所述字段的结构。
场FitInfo |
描述 |
---|---|
截距 |
截距项β0对于每个线性模型,a1 ——- - - - - -l向量 |
λ |
Lambda参数升序,a1 ——- - - - - -l向量 |
α |
的价值α 参数,标量 |
DF |
非零系数的个数B 对于每个值λ , 一种1 ——- - - - - -l向量 |
异常 |
的每个值的拟合模型的偏差 如果模型是交叉验证的,则 |
PredictorNames |
的价值PredictorNames 参数,存储为字符向量的单元格数组 |
如果你设置简历
要交叉验证的名称-值对参数FitInfo
结构包含这些附加字段。
场FitInfo |
描述 |
---|---|
SE |
的标准误差异常 为每一个λ ,在交叉验证期间计算的,a1 ——- - - - - -l向量 |
LambdaMinDeviance |
λ 具有最小预期偏差的值,如交叉验证,标量计算 |
Lambda1SE |
最大λ 值,这样异常 在最小的一个标准误差范围内,一个标量 |
IndexMinDeviance |
指数λ 有价值LambdaMinDeviance ,标量 |
Index1SE |
指数λ 有价值Lambda1SE ,标量 |
一个链接功能f(μ)映射一个具有平均值的分布μ与数据的线性模型X和系数矢量b使用这个公式
f(μ) =Xb.
中可以找到链接函数的公式链接
名称-值对参数说明。该表列出了每个发行版通常使用的链接函数。
分销家庭 | 默认链接功能 | 其他典型链路功能 |
---|---|---|
“正常” |
“身份” |
|
'二重子' |
分对数的 |
“comploglog” ,“重对数” ,“probit” |
“泊松” |
“日志” |
|
“伽马” |
'互惠的' |
|
'逆高斯' |
2 |
的非负值λ,lassoglm
解决问题
这个方程中的函数Deviance是使用截距拟合响应的模型的偏差β0以及预测系数β.越轨的公式取决于分配
您提供的参数lassoglm
.最小化λ- 级化偏差相当于最大化λ处罚loglikelihood。
N为观察次数。
λ一个非负正则化参数是否对应于的一个值λ
.
的参数β0和β一个标量和一个长度向量p,分别。
作为λ增加,非零分量的数目β减少。
套索问题涉及到l1规范的β,与弹性网算法相比。
[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。
要并行运行,请指定“选项”
调用此函数时的名称-值参数,并设置“UseParallel”
选项结构的领域真的
使用statset
.
例如:“选项”,statset (UseParallel,真的)
有关并行计算的更多信息,请参见使用自动并行支持运行MATLAB功能金宝app(并行计算工具箱).
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。