Questions tagged «elastic-net»

回归模型的正则化方法,结合了套索和岭回归的惩罚。



1
使用glmnet进行甲基化数据的特征选择和建模(p >> N)
我想使用GLM和Elastic Net来选择那些相关功能+建立一个线性回归模型(即预测和理解,因此最好保留相对较少的参数)。输出是连续的。这是每基因50的情况。我一直在阅读有关该软件包的信息,但是我不确定要执行的步骤:200002000020000505050glmnet 执行CV选择lambda: cv <- cv.glmnet(x,y,alpha=0.5) (Q1)给定输入数据,您会选择其他alpha值吗? (Q2)在建立模型之前,我还需要做其他事情吗? 拟合模型: model=glmnet(x,y,type.gaussian="covariance",lambda=cv$lambda.min) (Q3)有什么比“协方差”更好的选择? (Q4)如果CV选择了lambda,为什么需要此步骤nlambda=? (Q5)使用lambda.min还是更好lambda.1se? 获取系数,看看哪些参数掉了(“。”): predict(model, type="coefficients") 在帮助页面有很多种predict方法(例如predict.fishnet,predict.glmnet,predict.lognet等)。但是,正如我在一个示例中看到的那样,任何“简单”的预测都是如此。 (Q6)我应该用predict或者predict.glmnet还是其他? 尽管我已经读过有关正则化方法的文章,但我在R和这些统计软件包中还是一个新手,因此很难确定我是否正在使我的问题适应代码。任何建议都将受到欢迎。 更新 基于 “如前所述,类train的对象包含一个称为的元素finalModel,这是具有通过重采样选择的调整参数值的拟合模型。该对象可以按传统方式用于生成新样本的预测,模型的预测功能。” 使用caret调整α和拉姆达: trc = trainControl(method=cv, number=10) fitM = train(x, y, trControl = trC, method="glmnet") 是否fitM取代先前的步骤2?如果是这样,如何立即指定glmnet选项(type.gaussian="naive",lambda=cv$lambda.min/1se)? 接下来的predict步骤,我可以替换model为fitM吗? 如果我做 trc = trainControl(method=cv, number=10) fitM = train(x, y, trControl = trC, method="glmnet") …

2
用正则化或罚分拟合ARIMAX模型(例如,套索,弹性网或岭回归)
我在预测包中使用了auto.arima()函数来拟合具有各种协变量的ARMAX模型。但是,我经常有很多变量可供选择,并且通常最终得到一个最终模型,该模型可以使用其中的一个子集。我不喜欢用于变量选择的临时技术,因为我是人类并且容易受到偏见的影响,但是交叉验证时间序列比较困难,因此我没有找到一种自动尝试可用变量的不同子集的好方法,并且我无法根据自己的最佳判断来调整模型。 当我拟合glm模型时,可以通过glmnet软件包使用弹性网或套索进行正则化和变量选择。R中是否存在用于在ARMAX模型上使用弹性网的现有工具包,还是我必须自己开发?这是个好主意吗? 编辑:手动计算AR和MA项(例如,直到AR5和MA5)并使用glmnet拟合模型是否有意义? 编辑2:看来,FitAR软件包使我受益匪浅,但并非全部。

1
为什么glmnet使用Zou&Hastie原始论文中的“幼稚”弹性网?
L=1n∥∥y−Xβ∥∥2+λ1∥β∥1+λ2∥β∥22,L=1n‖y−Xβ‖2+λ1‖β‖1+λ2‖β‖22,\mathcal L = \frac{1}{n}\big\lVert y - X\beta\big\rVert^2 + \lambda_1\lVert \beta\rVert_1 + \lambda_2 \lVert \beta\rVert^2_2,β^∗=(1+λ2)β^.β^∗=(1+λ2)β^.\hat\beta^* = (1+\lambda_2)\hat\beta. 但是,随后的glmnet论文Friedman,Hastie,&Tibshirani(2010)通过坐标下降的广义线性模型的正则化路径没有使用这种重新缩放,只是有一个简短的脚注说 Zou和Hastie(2005)将此惩罚称为幼稚的弹性网,并且更喜欢重新缩放的版本,他们称之为弹性网。我们在这里放弃这种区别。 那里(或在Hastie等人的任何教科书中)没有给出进一步的解释。我觉得有些困惑。难道作者离开了重新调节,因为他们认为这是过于特设?因为它在一些进一步的实验中表现更差?因为不清楚如何将其归纳为GLM案例?我不知道。但是无论如何,此glmnet软件包从那时起变得非常受欢迎,所以我的印象是,如今没有人使用Zou&Hastie的重新缩放,并且大多数人甚至都没有意识到这种可能性。 问题:毕竟,这是一个好主意还是一个坏主意? 使用glmnet参数化后,Zou&Hastie重缩放比例应为β^∗=(1+λ(1−α))β^.β^∗=(1+λ(1−α))β^.\hat\beta^* = \big(1+\lambda(1-\alpha)\big)\hat\beta.

2
在弹性净回归中,为什么lambda“与最小值之间的标准误差之内”是lambda的推荐值?
我了解lambda在弹性净回归中扮演什么角色。而且我可以理解为什么要选择lambda.min,即将交叉验证错误最小化的lambda值。 我的问题是在统计资料中建议在哪里使用lambda.1se,即lambda的值可将CV误差加一个标准误差减到最小?我似乎找不到正式的引文,甚至找不到为什么这通常很有价值的原因。我知道这是一个限制性更强的正则化方法,会将参数进一步缩小为零,但我并不总是确定lambda.1se比lambda.min更好的选择。有人可以帮忙解释一下吗?

1
网桥惩罚与Elastic Net正则化
很好地研究了一些罚函数和近似值,例如LASSO()和Ridge()以及它们如何进行回归比较。L1L1L_1L2L2L_2 我一直在阅读有关Bridge惩罚的信息,即广义惩罚。将其与具有\ gamma = 1的LASSO 和具有\ gamma = 2的Ridge进行比较,使其成为特殊情况。 γ = 1 γ = 2∑∥βj∥γ∑‖βj‖γ\sum \|\beta_{j}\|^{\gamma}γ=1γ=1\gamma = 1γ=2γ=2\gamma = 2 Wenjiang [ 1 ]将\ gamma \ geq 1时的Bridge惩罚γ≥1γ≥1\gamma \geq 1与LASSO进行了比较,但是我找不到与LASSO和Ri​​dge惩罚相结合的弹性网正则化的比较,给出为∑λ2∥β∥2+λ1∥β∥1∑λ2‖β‖2+λ1‖β‖1\sum \lambda_{2} \|\beta\|^{2}+\lambda_{1}\|\beta\|_{1}。 这是一个有趣的问题,因为Elastic Net和此特定的Bridge具有相似的约束形式。使用不同的度量比较这些单位圆(ppp是Minkowski距离的幂): p=1p=1p = 1对应于LASSO,p=2p=2p = 2对应于Ridge,p=1.4p=1.4p = 1.4于一个可能的网桥。弹性网在L1L1L_1和L2L2L_2罚分上具有相等的权重。例如,这些数字可用于识别稀疏性(Bridge明显缺少稀疏性,而Elastic Net将其保存在LASSO中)。 那么在正则化(稀疏性除外)方面,具有1 &lt;\ gamma &lt;2的Bridge与1&lt;γ&lt;21&lt;γ&lt;21<\gamma <2Elastic Net相比如何?我对监督学习特别感兴趣,因此也许有关特征选择/加权的讨论是适当的。也欢迎几何论证。 也许更重要的是,在这种情况下,Elastic Net是否总是更理想? …

3
处理大,小问题时的模型稳定性
介绍: 我有一个经典的“大p,小n问题”数据集。可用样本数n = 150,而可能的预测变量数p = 400。结果是一个连续变量。 我想找到最“重要”的描述符,即那些最能解释结果并帮助建立理论的描述符。 经过对该主题的研究,我发现LASSO和Elastic Net通常用于大p小n的情况。我的一些预测变量具有高度相关性,因此我想在重要性评估中保留它们的分组,因此,我选择使用Elastic Net。我想我可以使用回归系数的绝对值来衡量重要性(如果我错了,请纠正我;我的数据集是标准化的)。 问题: 由于样本数量少,如何获得稳定的模型? 我目前的方法是在90%的数据集上以10倍的交叉验证平均MSE分数在网格搜索中找到最佳调整参数(λ和alpha)。然后,我在整个数据集的90%上使用最佳调整参数训练模型。我可以在数据集的10%保留率(仅占15个样本)上使用R平方来评估我的模型。 反复运行此过程,我发现R平方评估存在很大差异。同样,非零预测变量的数量及其系数也会变化。 如何获得对预测变量重要性的更稳定评估以及对最终模型性能的更稳定评估? 我可以重复运行我的程序来创建多个模型,然后平均回归系数吗?还是应该使用模型中预测变量的出现次数作为其重要性得分? 目前,我得到40-50个非零预测变量。为了更好的稳定性,我应该更严厉地惩罚一些预测变量吗?

2
弹性网逻辑回归中选择最佳alpha
我正在使用glmnetR中的程序包通过在的网格上从0到1 选择lambda值来对医疗数据集执行弹性网逻辑回归。我的缩写代码如下:αα\alpha alphalist &lt;- seq(0,1,by=0.1) elasticnet &lt;- lapply(alphalist, function(a){ cv.glmnet(x, y, alpha=a, family="binomial", lambda.min.ratio=.001) }) for (i in 1:11) {print(min(elasticnet[[i]]$cvm))} 对于从到每个alpha值,以为增量输出平均交叉验证误差:0.00.00.01.01.01.00.10.10.1 [1] 0.2080167 [1] 0.1947478 [1] 0.1949832 [1] 0.1946211 [1] 0.1947906 [1] 0.1953286 [1] 0.194827 [1] 0.1944735 [1] 0.1942612 [1] 0.1944079 [1] 0.1948874 根据我在文献中所读的内容,的最佳选择是使cv错误最小化。但是在整个Alpha范围内,误差有很多变化。我看到了几个局部最小值,全局最小值为。αα\alpha0.1942612alpha=0.8 安全alpha=0.8吗?或者,带来的变动,我应该重新运行cv.glmnet更多的交叉验证倍(如而不是),或者是更大数量的之间的增量,并得到CV错误路径清晰的画面?10 α202020101010αα\alphaalpha=0.01.0

2
弹性/脊线/套索分析,然后呢?
我对预测器收缩/选择的弹性网程序真的很感兴趣。似乎非常强大。 但是从科学的角度来看,我不知道一旦获得系数该怎么办。我在回答什么问题?这些是对结果有最大影响的变量,并且是在验证过程中提供最佳方差/偏差比的系数吗? 与经典的p值/置信区间方法相比,这当然是一种非常具有描述性/预测性的方法。Tibshirani&Co.现在正在研究推论估计,但仍处于实验阶段。 某些人正在使用弹性网选择的变量来进行经典的推理分析,但这将消除该技术带来的方差限制。 另一个问题是,由于通过交叉验证选择了弹性网的lambda和alpha参数,因此它们具有随机可变性。因此,每次运行(例如)cv.glmnet()时,您将选择系数始终略有不同的预测变量子集。 我通过考虑将正确的lambda和alpha作为随机变量来解决此问题,然后重新运行交叉验证步骤n次以获取这些参数的分布。这样,对于每个预测变量,我将具有出现的次数,对于每个系数,我将具有结果的分布。这应该为我提供范围统计信息(如系数的sd)更通用的结果。观察以这种方式选择的lambda和alpha是否渐近地近似也很有趣,因为这将为进行推理测试开辟道路(但我不是统计学家,所以我不应该谈论我不喜欢的事情完全不了解)。 所以最后我的问题是:一旦从具有基于交叉验证的alpha和lambda的弹性网中获得了预测变量和系数,应该如何显示这些结果?您应该如何讨论它们?我们学到了什么?我们可以混淆哪个假设/概括?

1
套索,山脊或弹性净解路径是单调的条件是否明确?
从该套索图(glmnet)得出的结论问题说明了套索估计量的解决路径不是单调的。也就是说,一些系数在缩小之前就已经增长了绝对值。 我已将这些模型应用于几种不同类型的数据集,但从未见过这种“狂野”的行为,直到今天,他们一直认为它们总是单调的。 是否有一组明确的条件可确保求解路径是单调的?如果路径改变方向,是否会影响结果的解释?

3
在进行统计推断时使用正则化
我了解建立预测模型时进行正则化的好处(偏差与方差,防止过度拟合)。但是,我想知道当回归模型的主要目的是对系数进行推断(看看哪些预测变量具有统计学意义)时,也进行正则化(套索,岭,弹性网)是否是一个好主意。我很想听听人们的想法以及与之相关的任何学术期刊或非学术文章的链接。

1
有同时进行L1和L2正则化(又称弹性网)的线性回归的贝叶斯解释吗?
众所周知,惩罚为线性回归等效于在系数上给出高斯先验后找到MAP估计。同样,使用l 1罚则等同于使用拉普拉斯分布作为先验。l2l2l^2l1l1l^1 使用和l 2正则化的一些加权组合并不罕见。我们是否可以说这等于系数上的某些先验分布(直觉上似乎必须如此)?我们可以给这个分布一个好的分析形式(也许是高斯和拉普拉斯的混合)吗?如果没有,为什么不呢?l1l1l^1l2l2l^2

1
R平方值适合比较模型吗?
我正在尝试使用汽车分类广告站点上提供的价格和功能来确定预测汽车价格的最佳模型。 为此,我使用了scikit-learn库中的几个模型以及pybrain和Neurolab中的神经网络模型。到目前为止,我使用的方法是通过某些模型(机器学习算法)运行固定数量的数据,并在那里比较使用scikit-learn度量模块计算的值。R2R2R^2 是的好方法,来比较不同车型的性能?R2R2R^2 尽管我对诸如弹性网和随机森林之类的模型获得了令人满意的结果,但对于神经网络模型却获得了非常差的值,那么是评估神经网络的合适方法(或非线性方法)?R2R2R^2R2R2R^2

2
关联特征后,为什么Lasso或ElasticNet的性能优于Ridge
我有一组150个功能,其中许多功能彼此之间高度相关。我的目标是预测范围为1-8的离散变量的值。我的样本大小为550,我正在使用10倍交叉验证。 AFAIK,在正则化方法(套索,ElasticNet和Ridge)中,Ridge更严格地关联特征之间。这就是为什么我期望使用Ridge可以得到更准确的预测的原因。但是,我的结果表明,Lasso或Elastic的平均绝对误差在0.61左右,而岭回归的平均分误差是0.97。我不知道对此会有什么解释。这是因为我拥有许多功能,而Lasso却因为选择了某种功能而摆脱了多余的功能,因此性能更好了吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.