为什么逻辑回归在高维度上特别容易过拟合?
现有的答案没有错,但我认为解释可能更直观一些。这里有三个关键思想。
1. 渐近预测
在逻辑回归中,我们使用线性模型来预测,即
然后我们使用逻辑/逆对数函数将其转换为概率
重要的是,此函数实际上从未达到或的值。相反,当变得更负时越来越接近 ,而当它变得更正时
2.完美分离
有时,您最终会遇到模型想要预测或的情况。当可以通过您的数据绘制一条直线时,就会发生这种情况,以便直线一侧的而另一侧的每个 y=1 。这称为完美分离。
二维
发生这种情况时,模型会尝试预测尽可能接近和,方法是预测尽可能低和高为此,它必须将回归权重设置得 尽可能大。
正则化是一种抵消这一点的方法:模型不允许将设置为无限大,因此不能无限高或无限低,并且预测的不能如此接近或。
3. 更多维度更容易实现完美分离
因此,当您有许多预测变量时,正则化变得更加重要。
为了说明,这里再次绘制了之前绘制的数据,但没有第二个预测变量。我们看到不再可能绘制一条将与完美分开的直线。
代码
# https://stats.stackexchange.com/questions/469799/why-is-logistic-regression-particularly-prone-to-overfitting
library(tidyverse)
theme_set(theme_classic(base_size = 20))
# Asymptotes
mu = seq(-10, 10, .1)
p = 1 / (1 + exp(-mu))
g = ggplot(data.frame(mu, p), aes(mu, p)) +
geom_path() +
geom_hline(yintercept=c(0, 1), linetype='dotted') +
labs(x=expression(mu), y='P(y=1)')
g
g + coord_cartesian(xlim=c(-10, -9), ylim=c(0, .001))
# Perfect separation
x = c(1, 2, 3, 4, 5, 6)
y = c(0, 0, 0, 1, 1, 1)
df = data.frame(x, y)
ggplot(df, aes(x, y)) +
geom_hline(yintercept=c(0, 1), linetype='dotted') +
geom_smooth(method='glm',
method.args=list(family=binomial), se=F) +
geom_point(size=5) +
geom_vline(xintercept=3.5, color='red', size=2, linetype='dashed')
## In 2D
x1 = c(rnorm(100, -2, 1), rnorm(100, 2, 1))
x2 = c(rnorm(100, -2, 1), rnorm(100, 2, 1))
y = ifelse( x1 + x2 > 0, 1, 0)
df = data.frame(x1, x2, y)
ggplot(df, aes(x1, x2, color=factor(y))) +
geom_point() +
geom_abline(intercept=1, slope=-1,
color='red', linetype='dashed') +
scale_color_manual(values=c('blue', 'black')) +
coord_equal(xlim=c(-5, 5), ylim=c(-5, 5)) +
labs(color='y')
## Same data, but ignoring x2
ggplot(df, aes(x1, y)) +
geom_hline(yintercept=c(0, 1), linetype='dotted') +
geom_smooth(method='glm',
method.args=list(family=binomial), se=T) +
geom_point()
渐近性质是指逻辑曲线本身。如果不进行正则化,优化器会放大逻辑回归的权重,使尽可能地向左或向右,以最大限度地减少损失。
让我们假设一个提供完美分离的特征,可以想象在每次迭代中变得越来越大。在这种情况下,优化将失败,除非解决方案是正则化的。
高维模型为可能的参数集创建了一个大的假设空间。优化器将通过选择具有最高权重的解决方案来利用这一点。较高的权重将减少损失,这是优化器的任务,使逻辑曲线变陡,并提供更高的数据条件似然。该模型是过度自信的,这是在此设置中过度拟合的解释。
如果有多个参数配置具有相同的二进制性能度量,优化器将始终选择损失最低的配置。由于逻辑曲线的渐近性,损失函数可以减少到超出二进制标签提供的信息。
更务实的正则化,使系数更小,有助于减少过拟合。可以使用贝叶斯理论找到对无约束权重、正则化和过拟合之间关系的更正式的解释。
这与特定的日志损失函数无关。
该损失函数与二项式/二元回归有关,而不是专门与逻辑回归有关。使用其他损失函数,您会遇到相同的“问题”。
那么是什么情况呢?
- 逻辑回归是这种二项式/二元回归的特例,它是具有渐近性质的逻辑链接函数。
- 此外,对于完美分离的情况,“过度拟合”最有问题。
完美分离和拟合 sigmoid 曲线
如果样本完全分离,则逻辑链接函数的 sigmoid 形状可以通过增加系数(至无穷大)使拟合“完美”(零残差和过度拟合)。
例如,在下图中,真实模型是:
但是不等于或不接近但值为 0 或 1 的数据点恰好是完全分离的类(一方面它们都是 0,另一方面它们都是 1),并且作为结果拟合值也被拟合为等于 0 和 1(sigmoid 函数允许通过让)
一个类似的例子,具有类似的过度拟合倾向,将是
因此,这并不太依赖于损失函数的类型(或误差分布),而更多的是模型预测能够接近完美拟合。
在这个正弦波的例子中,当你不限制频率时,你会得到过拟合,在逻辑回归的情况下,当你有完美的分离时,你会得到过拟合。
为什么正则化有效
您可以通过正则化来解决它,但是您应该有一些好的方法来了解/估计您希望正则化的程度。
在高维情况下,它“有效”,因为过拟合(具有仅链接到一个或几个点/个体的特征)需要许多参数值很高。这将快速增加成本函数的正则化部分。
正则化将使您的健康倾向于“使用更少的功能”。这与您的先验知识/信念相对应,即您的模型应该只依赖于几个特征,而不是大量的许多微小的比特(这很容易成为噪音)。
示例例如,假设您希望预测成为美国总统的概率,那么您可能会很好地处理一些泛化参数,例如教育、父母、金钱/财富、性别、年龄。但是,如果您的拟合分类模型没有进行正则化,则可能会赋予来自每个单个观察/总统的许多独特特征的权重(并可能在训练集中达到完美的分数/分离,但不是泛化),而不是重视像“年龄”这样的单个参数,它可能会使用“抽烟和喜欢瘦身”之类的东西(其中许多参数是为了解释观察集中的每一位总统)。
正则化减少了具有过多不同参数的拟合,因为当具有较高值的参数较少时,您可能会获得更好的(正则化)损失(这意味着您使模型更喜欢更通用的参数)。
这种正则化实际上是一件“好事”,即使没有完美分离的情况。
在我看来,答案比其他人的答案如此优雅地描述的要简单得多。当样本量减少时,过度拟合会增加。过拟合是有效样本量的函数。当 Y 是连续的(即具有最高信息量)时,对于给定的表观样本大小,过度拟合是最小的。单元概率为 0.5 0.5 的二进制 Y 比连续变量具有更少的信息,并且由于有效样本量较低而导致更多的过拟合。概率为 0.01 0.99 的 Y 会导致更严重的过拟合,因为有效样本量甚至更低。有效样本大小与 min(a, b) 成正比,其中 a 和 b 是样本数据中的两个单元频率。对于连续 Y,有效样本量和实际样本量相同。这包括在https://hbiostat.org/rms