使用诸如Ridge,Lasso,ElasticNet之类的方法进行正则化对于线性回归非常普遍。我想了解以下内容:这些方法是否适用于逻辑回归?如果是这样,则将它们用于逻辑回归的方式是否存在任何差异?如果这些方法不适用,如何对逻辑回归进行正则化?
使用诸如Ridge,Lasso,ElasticNet之类的方法进行正则化对于线性回归非常普遍。我想了解以下内容:这些方法是否适用于逻辑回归?如果是这样,则将它们用于逻辑回归的方式是否存在任何差异?如果这些方法不适用,如何对逻辑回归进行正则化?
Answers:
是的,正则化可用于所有线性方法,包括回归和分类。我想向您展示,回归和分类之间没有太大的区别:唯一的区别是损失函数。
具体来说,线性方法主要包括三个部分:损失函数,正则化,算法。损失函数加正则化是优化形式问题中的目标函数,而算法是求解问题的方法(目标函数是凸函数,在本文中不再讨论)。
在损失函数设置中,我们在回归案例和分类案例中都会有不同的损失。例如,最小二乘和最小绝对偏差损失可用于回归。他们的数学表示为和。(函数在两个标量上定义,是地面真实值,而是预测值。)
另一方面,逻辑损失和铰链损失可用于分类。它们的数学表示形式为和。(在这里,是的地面真相标签,并且被预测为“分数”。的定义有点不寻常,请参见注释部分。)
在正则化设置中,您提到了L1和L2正则化,还有其他形式,本文将不再讨论。
因此,在高层次上,线性方法是
如果将“损失”功能从回归设置替换为逻辑损失,则可以通过正则化获得逻辑回归。
例如,在岭回归中,优化问题是
如果用逻辑损失替换损失函数,问题将变为
在这里,您可以使用L2正则化进行逻辑回归。
这就是玩具合成二进制数据集中的外观。左图是线性模型(决策边界)的数据。右图是目标函数轮廓(x和y轴代表2个参数的值。)。数据集是从两个高斯生成的,我们拟合了逻辑Logistic回归模型而没有截距,因此在正确的子图中只能看到两个参数。
蓝线是没有正则化的逻辑回归,黑线是有L2正则化的逻辑回归。右图中的蓝色和黑色点是目标函数的最佳参数。
在此实验中,我们设置了一个大,因此您可以看到两个系数都接近于。另外,从轮廓上我们可以看到正则项占主导,整个函数就像一个二次碗。
这是L1正则化的另一个示例。
请注意,本实验的目的是试图显示正则化如何在logistic回归中工作,但并不认为正则化模型会更好。
以下是有关L1和L2正则化及其如何影响逻辑损失目标的一些动画。在每个框架中,标题均建议正则化类型和,其图为目标函数(逻辑损失+正则化)轮廓。我们在每帧中增加正则化参数,最优解将逐帧缩小到。
一些符号注释。和是列向量,是标量。因此,线性模型。如果要包括拦截项,可以将作为列追加到数据中。
在回归设置中,是实数,而在分类设置中。
请注意,分类设置中的定义有点奇怪。由于大多数人使用来表示的预测值。在我们的例子中,是一个实数,而不是。我们使用定义是因为我们可以简化逻辑损失和铰链损失的表示法。
还要注意,在某些其他符号系统,逻辑损失函数的形式会有所不同。
该代码可以在我的其他答案中找到。
最初基于高阶渐近性考虑用于逻辑回归的一种收缩/正则化方法是Firth逻辑回归 ...在所有这些关于套索的讨论以及未开始的话题之前,有一段时间,尽管在脊回归回归并逐渐消退之后, 1970年代。对似然增加了一个惩罚项,即 其中
glm
R
是的,它适用于逻辑回归。在R中,使用glmnet,您只需指定适当的族,即逻辑回归的“二项式”。您可以根据数据和要解决的问题指定其他几项(毒药,多项式等)。