证明岭回归相对于普通回归的好处

机器算法验证 回归 岭回归 正则化
2022-03-25 01:35:59

在多重共线性的情况下,我可以理解岭回归优于普通回归

set.seed(123)
 x1 <- rnorm(100)
 set.seed(223)
 x2 <- rnorm(100,mean=x1,sd=.01)
 set.seed(344)
 y <- rnorm(100,mean=3+x1+x2)
 myd <- data.frame(x1, x2,y)
 cor(myd)
          x1        x2         y
x1 1.0000000 0.9999383 0.8701704
x2 0.9999383 1.0000000 0.8702772
y  0.8701704 0.8702772 1.0000000

普通回归:

lm(y~x1+x2)$coef
(Intercept)          x1          x2 
   3.063971   -1.027534    3.097806 

使用MASS包的岭回归

require(MASS)
lm.ridge(y~x1+x2,lambda=1)
               x1       x2 
3.066382 1.019101 1.043206 

lambda (shrinkage) = 0 等于普通回归。

 lm.ridge(y~x1+x2,lambda=0)
                 x1        x2 
 3.063971 -1.027534  3.097806

问题:

(1) 我们如何证明岭回归比普通回归表现更好任何估计器喜欢错误?如何计算?

(2) 是否有其他情况 ridge 比 OLR 更好?

1个回答

我试图找到一个答案,但一个相当笼统的答案。

(1) 这取决于你所说的“表现更好”是什么意思。通常,绩效是根据概括和预测的能力来衡量的。因为这种交叉验证是一种常用的工具,您可以在其中反复将数据划分为训练集和测试集,使用训练集拟合模型,然后将预测集和测试集之间的偏差作为泛化能力的衡量标准。

(2) 这种情况很多。主要原因是岭回归往往可以避免过拟合。Bishop 的机器学习书的开头给出了一个基本示例:这里,将一个九阶多项式拟合到添加噪声的正弦曲线的随机实现。如果没有岭回归,拟合显然似乎过拟合M=9

...好吧,显然至少当您还看到相应的正弦曲线时。但即使没有这些信息,人们也应该——根据奥卡姆的剃刀原则——更喜欢简单的模型,在这种情况下M=3多项式在左边。

以下是使用岭回归的相应结果:

你看到了好处,但也看到了危险。如果你选择λ=1(IE lnλ=0) 就像在右侧所做的那样,您获得了一个大多数人会感到失望的合身。为了lnλ=18您保留一个简单且明显恰当的描述,类似于M=3多项式。

参数λ因此被认为降低了模型的复杂性。也就是说,您可以假设一个复杂的模型,并让程序在需要时自动降低复杂性。一般来说,这是一种避免为每个新数据集找到特定模型的任务的方法——相反,您只需选择一个通用模型,然后降低其复杂性,直到您希望获得所需的结果。当然,通过这个你可以获得更多的免费参数λ必须正确估计。同样,这通常通过交叉验证来完成。

最后,在这里您可以看到岭参数对训练和测试误差的影响:

自然,随着成长λ,训练误差随着残差平方和的变大而增加。同时。但是,另一方面,您会看到测试错误在某个地方达到最小值lnλ=30,这表明这对于泛化任务来说是一个很好的价值。