正则化与机器学习模型优化
在机器学习中,过拟合是一个常见的问题,它会导致模型在训练数据上表现良好,但在新数据上表现不佳。之前我们介绍了如何使用交叉验证来处理过拟合问题,现在我们将探讨另一种防止过拟合的方法——正则化。
1. 正则化基础
正则化与交叉验证在本质上有所不同,但最终我们会使用交叉验证来证明正则化能够防止过拟合,并且还会用交叉验证来校准正则化算法,所以这两种方法最终会紧密相连。
1.1 模型复杂度的衡量
在多项式回归中,我们可以认为模型的次数越高,复杂度就越高。例如,二次多项式比一次多项式更复杂。但对于一般的线性回归,这种衡量方法并不适用。因此,我们采用另一种衡量复杂度的方法:当模型的系数较大时,我们认为模型更复杂。例如,模型 y ~ 5 * x + 2 比 y ~ 3 * x + 2 更复杂。
为了在实践中使用这个定义,我们可以使用 lm 函数拟合模型,然后通过对系数的平方求和来衡量模型的复杂度:
lm.fit <- lm(y ~ x)
model.complexity <- sum(coef(lm.fit) ^ 2)
这里我们在求和之前对系数进行了平方,以避免它们在相加时相互抵消,这个平方步骤通常称为 L2 范数。另一种方法是取系数的绝对值,这称为 L1 范数。在 R 中,我们可以这样计算:
lm.fit <- lm(y ~ x)
l2.m
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



