为什么线性判别分析对交叉验证很敏感(LDA 过拟合问题)?

机器算法验证 机器学习 分类 交叉验证 特征选择 判别分析
2022-03-23 22:02:20

我有 7 个类的 500+ 观察(200+ 特征向量维度),并希望提高我的分类率(使用 SVM 或 KNN)。

为了减少维度并将特征矩阵转换为较低维度(由于维度灾难),我使用了 LDA。它将我的高维数据映射到低 6 维。但是应用交叉验证的 LDA 并没有帮助并显着降低结果。

当我什至使用留一法(LOOCV)来计算 LDA 投影矩阵时,它是通过只保留一个观察值来计算的。我的问题是为什么即使在这种情况下投影矩阵(W) 对交叉验证的过度拟合和敏感?直观地说,我只保留了一个样本,但投影矩阵似乎无法正确映射保留的观察结果。

我对两个部分感兴趣:

  • 这种实验背后的数学。
  • 更好的交叉验证特征转换而不是 LDA 的一些考虑或解决方案。

更新

  • 基于@Andrew M,最初的回应,我每堂课的观察次数不同。例如,一个类有 120 个示例观察,而另一个只有 40 个。
3个回答

看起来您的样本量并不比数据的维度(特征集大小)大很多。这对 LDA 来说可能是个问题,而且可能会过拟合。因为它依赖于计算类内散布矩阵,这需要 N >> p(# 个样本 >># 个特征)的场景。

检查 LDA 是否过度拟合的一种快速方法是查看预测。作为 LDA 的结果,您有 C-1 投影向量。我会尝试将数据一一投影到这些向量上并将其可视化。如果 LDA 确实过拟合 - 您将看到类几乎完美地分离,并且聚集在投影轴上的不同点周围。(在 p > N 的情况下,所有样本都将投影到 C 个不同的点上,并且类别完全分开)。

JS Marron 在他的论文Distance Weighted Discrimination中将这种效应称为“数据堆积” 为了参考它的外观,您可以查看该论文中的数字。

因此,假设这是发生的事情,我将执行以下操作之一:

1) 使用正则化版本的 LDA。最简单的想法可能只是在类内散布矩阵的对角线上添加一些常数,以增加各个方向的方差。但是有很多不同的方法可以规范 LDA。

2)使用另一种适合您的小样本量场景的降维方法。距离加权歧视 (DWD) 在这里可能是一个不错的选择。

3) 获取更多样本(始终推荐)

[1]距离加权歧视JS Marron、Michael J. Todd 和 Jeongyoun Ahn。美国统计协会杂志卷。102, No. 480(2007 年 12 月),第 1267-1271 页

当我什至使用留一法(LOOCV)来计算 LDA 投影矩阵时,它是通过只保留一个观察值来计算的。我的问题是为什么即使在这种情况下投影矩阵(W) 对交叉验证的过度拟合和敏感?直观地说,我只保留了一个样本,但投影矩阵似乎无法正确映射保留的观察结果。

好吧,交叉验证可能正在做它应该做的事情:使用几乎相同的训练数据,测量性能。您观察到的是模型不稳定(这是过度拟合的症状之一)。考虑到您的数据情况,对我来说,完整模型的过度拟合似乎完全合理。

交叉验证本身并不能防止过度拟合(或改善情况)——它只是告诉你你过度拟合了,你可以做些什么来对抗它。

请记住,对于 LDA 等(非正则化)线性分类器,推荐的训练案例数量是 n > 3 到 5 p 在您的情况下,例如 200 * 7 * 5 = 7000 个案例,因此对于 500 个案例,您比该建议低一个数量级以上。


建议:

  • 当您将 LDA 视为一种投影方法时,您还可以查看 PLS(偏最小二乘法)。它与 LDA 相关(Barker & Rayens: Partial least squares for contrast J Chemom, 2003, 17, 166-173)。与 PCA 相比,PLS 将因变量考虑在内进行预测。但与 LDA(和 PCA 一样)相比,它直接提供正则化。

  • 在 n 几乎不大于 p 的小样本情况下,许多问题可以通过线性分类来解决。我建议检查分类中的非线性第二阶段是否真的有必要。

  • 通过切换到聚合(集成)模型可以改进不稳定的模型。虽然 bagging 是最著名的品种,但您也可以聚合交叉验证 LDA(例如Beleites, C. & Salzer, R.: Assessing and Improvement the stability ofchemometric models in small sample size situation Anal Bioanal Chem, 2008, 390, 1261- 1271.
    DOI: 10.1007/s00216-007-1818-6
    )

  • 由于协方差矩阵的汇集,与许多其他分类器(如 SVM)相比,我希望 LDA 对不同类别的案例分布不均匀不太困难。当然,这是以通用协方差矩阵可能无法很好地描述您的数据为代价的。但是,如果您的类非常不平等(或者您甚至有相当不明确的否定类,例如“过程出现问题”),您可能需要查看一类分类器。与判别分类器相比,它们通常需要更多的训练案例,但它们确实具有以下优势:对具有足够案例的类的识别不会受到只有少量训练实例的类的影响,并且可以将所述定义不明确的类描述为案例所属没有一个定义明确的类。

当以标签为条件的特征分布是具有相等但非结构化协方差矩阵的高斯分布时,LDA 是最佳的。如果条件高斯模型不能近似成立,您可能不想使用 LDA。您的 LOO-CV 的结果表明

  1. 条件高斯模型拟合不佳和/或
  2. 您没有足够的观察值来精确估计类内协方差矩阵。