Questions tagged «regularization»

在模型拟合过程中包括其他约束(通常是复杂性的代价)。用于防止过度拟合/提高预测准确性。

2
如何解释glmnet?
我正在尝试使用约60个预测变量和30个观察值来拟合多元线性回归模型,所以我使用glmnet软件包进行正则回归,因为p> n。 我一直在研究文档和其他问题,但仍然无法解释结果,这是示例代码(为简化起见,有20个预测变量和10个观察值): 我创建了一个矩阵x,其中num行=观察值,cols =预测变量,向量y表示响应变量 > x=matrix(rnorm(10*20),10,20) > y=rnorm(10) 我适合一个glmnet模型,将alpha保留为默认值(套索罚分= 1) > fit1=glmnet(x,y) > print(fit1) 我了解随着lambda值的降低(即罚款),我得到了不同的预测 Call: glmnet(x = x, y = y) Df %Dev Lambda [1,] 0 0.00000 0.890700 [2,] 1 0.06159 0.850200 [3,] 1 0.11770 0.811500 [4,] 1 0.16880 0.774600 . . . [96,] 10 0.99740 0.010730 [97,] …

2
如果仅对预测感兴趣,为什么在山脊上使用套索?
在《统计学习入门》的第223页中,作者总结了岭回归和套索之间的区别。他们提供了一个示例(图6.9),其中“套索在偏见,方差和MSE方面倾向于胜过岭回归”。 我知道为什么套索是可取的:因为它会将许多系数缩小到0,所以结果很稀疏,从而导致模型简单易懂。但是我不明白当仅对预测感兴趣时,它如何能胜过岭(即,在示例中,它如何获得显着更低的MSE?)。 使用ridge时,如果许多预测变量对响应几乎没有影响(少数预测变量产生很大影响),它们的系数不会简单地缩小到非常接近零的小数目...导致与套索非常相似?那么,为什么最终模型的性能会比套索差?


4
(为什么)过拟合模型的系数往往较大?
我认为变量的系数越大,模型在该维度上“摆动”的能力就越强,从而增加了拟合噪声的机会。尽管我认为我对模型中的方差与大系数之间的关系有一个合理的认识,但是我对为什么它们出现在过拟合模型中却没有很好的认识。说它们是过度拟合的症状是不正确的,系数收缩更是一种减少模型方差的技术吗?通过系数收缩进行正则化的原理似乎是:大系数是过度拟合模型的结果,但也许我误解了该技术背后的动机。 我的直觉是大系数通常是过度拟合的症状,来自以下示例: 假设我们要拟合全部位于x轴上的个点。我们可以很容易地构造一个多项式,其解为这些点:。假设我们的点位于。该技术给出所有大于等于10的系数(一个系数除外)。随着我们添加更多点(从而增加多项式的次数),这些系数的大小将迅速增加。f (x )= (x − x 1)(x − x 2)。。。。(X - X ñ - 1)(X - X Ñ)X = 1 ,2 ,3 ,4ññnF(x )= (x − x1个)(x − x2)。。。。(x − xn − 1)(x − xñ)F(X)=(X-X1个)(X-X2)。。。。(X-Xñ-1个)(X-Xñ)f(x) = (x-x_1)(x-x_2)....(x-x_{n-1})(x-x_n)X = 1 ,2 ,3 ,4X=1个,2,3,4x=1,2,3,4 这个示例是我当前如何将模型系数的大小与生成的模型的“复杂性”联系起来的方式,但是我担心这种情况对于实际显示行为是不正确的。我特意建立了一个过拟合模型(对二次抽样模型生成的数据进行了10次多项式OLS拟合),并惊讶地发现模型中的系数很小: set.seed(123) xv = seq(-5,15,length.out=1e4) x=sample(xv,20) …

1
L1正则化的回归与套索是否相同,L2正则化的回归与岭回归是否相同?以及如何写“套索”?
我是一名学习机器学习的软件工程师,尤其是通过Andrew Ng的机器学习课程学习机器学习。在研究带有正则化的线性回归时,我发现令人困惑的术语: 使用L1正则化或L2正则化进行回归 套索 岭回归 所以我的问题是: L1正则化的回归与LASSO完全相同吗? L2正则化的回归与Ridge回归完全相同吗? LASSO是如何写作的?应该是“ LASSO回归”吗?我见过类似“ 套索更合适 ”的用法。 如果以上1和2的答案是“是”,那么为什么这两个术语有不同的名称?“ L1”和“ L2”是否来自计算机科学/数学,而“ LASSO”和“ Ridge”是否来自统计? 当我看到类似以下内容的帖子时,这些术语的使用会造成混淆: “ L1和L2正则化有什么区别? ”(quora.com) “ 什么时候应该使用套索vs岭? ”(stats.stackexchange.com)



2
偏最小二乘回归背后的理论
谁能为了解SVD和PCA的人推荐一个关于偏最小二乘回归背后的理论的很好的解释(可在线获得)?我在网上查看了许多资料,但没有找到将严谨性和可访问性完美结合的任何内容。 我研究了《统计学习的要素》,这是在对交叉验证提出的一个问题的评论中提出的,什么是偏最小二乘(PLS)回归?它与OLS有何不同?,但我认为该参考文献并未涉及“正义”这一主题(这样做太简短了,并且没有提供关于该主题的太多理论)。从我读过,PLS利用预测变量,的线性组合zi=Xφizi=Xφiz_i=X \varphi_i协方差最大化yTziyTzi y^Tz_i 受约束∥φi∥=1‖φi‖=1\|\varphi_i\|=1和zTizj=0ziTzj=0z_i^Tz_j=0 if i≠ji≠ji \neq j, where the φiφi\varphi_i are chosen iteratively, in the order in which they maximize the covariance. But even after all I've read, I'm still uncertain whether that is true, and if so, how the method is executed.

4
为什么在多项式回归中使用正则化而不是降低度数?
例如,在进行回归时,要选择的两个超参数通常是函数的容量(例如多项式的最大指数)和正则化量。我感到困惑的是,为什么不只选择一个低容量函数,然后忽略任何正则化?这样,它不会过拟合。如果我同时具有高容量功能和正则化功能,那是否与低容量功能和无正则化功能一样?


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
为什么我得出的封闭套索解决方案不正确?
套索问题具有封闭形式的解决方案:\ beta_j ^ {\ text {lasso}} = \ mathrm {sgn}(\ beta ^ {\ text {LS}} _ j)(| \ beta_j ^ {\ text {LS }} |-\\ alpha)^ +( 如果X具有正交列)。这在以下线程中得到了证明:封闭形式套索解决方案的派生。β 套索 Ĵ = 小号克Ñ(β LS Ĵ)(| β LS Ĵ | - α )+ Xβlasso=argminβ∥y−Xβ∥22+α∥β∥1βlasso=argminβ⁡‖y−Xβ‖22+α‖β‖1\beta^{\text{lasso}}= \operatorname*{argmin}_\beta \| y-X\beta\|^2_2 + \alpha \| \beta\|_1βlassoj=sgn(βLSj)(|βLSj|−α)+βjlasso=sgn(βjLS)(|βjLS|−α)+ \beta_j^{\text{lasso}}= …

2
拉索之前的标准化真的有必要吗?
我已经了解了在进行诸如Lasso回归之类的操作之前标准化变量的三个主要原因: 1)系数的可解释性。 2)能够根据收缩后系数估计值的相对大小对系数重要性进行排名。 3)无需拦截。 但是我想知道最重要的一点。我们是否有理由认为标准化会改善模型的样本外推广?而且我不在乎我是否不需要模型中的拦截器。加一个不会伤害我。

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.

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.