今天我们的教授在课堂上说“用线性分类器过拟合是不可能的”。我认为这是错误的,因为即使是线性分类器也可能对训练集中的异常值敏感——例如硬边距支持向量机:一个单一的噪声数据点可以改变将用于分离数据集的超平面。还是我错了?显然,由于模型复杂度较低,线性可能会防止过度拟合,但我仍然不明白为什么过度拟合是不可能的。另外一点是,当我试图考虑这个问题时,我意识到“过度拟合”似乎没有被正式定义。这是为什么?训练和测试集性能之间的距离测量是否允许这样的形式化?谢谢
线性分类器过拟合
如果使用不当,线性回归/分类器绝对会过拟合。
这是一个小例子。让我们创建两个向量,第一个只是随机抛硬币:
set.seed(154)
N <- 5000
y <- rbinom(N, 1, .5)
第二个向量是个观测值,每个观测值随机分配到随机类之一:
N.classes <- 500
rand.class <- factor(sample(1:N.classes, N, replace=TRUE))
y
我们的翻转和我们的随机类之间不应该有任何关系rand.class
,它们是完全独立确定的。
然而,如果我们尝试使用逻辑回归(线性分类器)预测随机类的随机翻转,它肯定认为存在关系
M <- glm(y ~ rand.class, family="binomial")
hist(coef(M), breaks=50)
这些系数中的每一个的真实值都是零。但正如你所看到的,我们的传播范围很大。这个线性分类器肯定是过拟合的。
注意:此直方图中的极值,即系数已漂移到和的情况,是一类没有观测值或没有值的情况。这些系数的实际估计值是正负无穷大,但逻辑回归算法是硬编码的,边界为。y == 1
y == 0
“过度拟合”似乎没有正式定义。这是为什么?
在具有一些复杂性参数的一类模型的上下文中,可以最好地理解过度拟合。在这种情况下,当稍微降低复杂性导致更好的预期样本性能时,可以说模型过度拟合。
以独立于模型的方式精确定义概念将非常困难。一个模型刚刚好,你需要一些东西来比较它,让它过拟合或过拟合。在我上面的例子中,这个比较是真实的,但你通常不知道真相,因此模型!
训练和测试集性能之间的距离测量是否允许这样的形式化?
有这样一个概念,叫做乐观主义。它定义为:
其中代表误差,每个术语在您的学习算法的所有可能的训练和测试集上进行平均。
不过,它并没有完全理解过拟合的本质,因为在测试集上的性能可能比训练集差很多,尽管更高复杂度的模型会降低两者。
我认为过拟合指的是模型的复杂性,而不是泛化能力。我理解“线性分类器不能过度拟合”这句话,因为它的复杂性很小,并且没有其他更简单的分类器可以提供更好的性能。
该示例与线性分类器(和复杂分类器)的泛化能力有关。即使在第二部分,线性分类器通常比复杂分类器提供更少的方差,因此遵循这个概念的线性分类器的“过度拟合”值也更小(尽管它们的经验风险可能很大)。atb
在 70-tie 中,在大型数据集上使用模式识别算法进行的实验表明,添加额外的特征在某些情况下确实会增加测试集的错误率。这是违反直觉的,因为人们会期望添加额外的特征总是会提高分类器的性能,或者如果添加的特征是“白噪声”,它的添加根本不会影响分类器的性能。向分类器添加更多额外特征,最终导致测试集性能下降的效果被称为峰值现象[1]。
特征峰值是由学习过程中的过度泛化引起的。额外的特征会导致包含太多额外的参数,以至于分类器开始过度拟合数据。因此,峰值点已经过去。
一般来说,我们在训练分类器时面临偏差-方差权衡。我们使用的特征变量越多,(未知的)底层分类器机制就越可能被我们的分类器建模。因此,拟合模型与“真实”之间的系统偏差将减小,即产生较小的偏差。另一方面,增加分类器的特征空间必然意味着添加参数(那些适合添加的特征的参数)。因此,拟合分类器的方差也增加了。
因此,超过峰值点的分类器只是高维分类问题的一种随机实现,新的拟合将导致参数向量高度不同。这一事实反映了增加的方差。
[1。GV Trunk,“维度问题:一个简单的例子”,IEEE 模式分析和机器智能汇刊,第一卷。PAMI-1,没有。3,第 306-307 页,1979 年 7 月]
就像@match-maker-ee 所说,线性分类器可以根据输入特征过度拟合。
以下模型f的参数a、b和c是线性的,但可以拟合到x的特征空间中的二次曲线:
SVM 也可能过拟合,例如当他们使用内核技巧时,尽管它基本上是增强特征空间中的线性模型。