在我进行分类之前应该执行 PCA 吗?

机器算法验证 分类 主成分分析
2022-04-05 17:53:20

我在进行分类时遇到了问题。我有大约 50 个数据集。它们每个都有 15 个特征。

我正在尝试使用这些功能将 50 个数据集分类为“好”或“坏”。50 个数据集的真实标签可用,因此可以进行经典训练和验证。

由于有 15 个特征,该问题应被视为高维分类。我的问题是:

我们是否应该在运行任何通用分类算法(例如 LDA、KNN 或 SVM)之前始终执行 PCA?

我得到了某人的意见:

“PCA 选择变量分布最大的方向,而不是聚类子类之间相对距离最大的维度。”

但就我的理解而言,为了更好地分类,我们需要找到两组之间差异较大的特征。例如,我们可以分别计算一个特征对于'Good'和'Bad'的均值和标准差,我们可以看看是否有很大的差异。如果是这样,我们选择此功能。此外,我们需要找到两者之间相关性最小的特征。如果两个特征有很大的正相关,我们可以选择使用其中一个。PCA 以某种方式为我们提取了降维特征,给定 15 个特征,它会给出 2 或 3 个可以更好分类的主成分。我对吗?还是我走错路了?

1个回答

“PCA 选择变量分布最大的方向,而不是聚类子类之间相对距离最大的维度。”

LDA 投影数据,以便类间方差:类内方差最大化。这是通过首先以使协方差矩阵为球形的方式投影来实现的。由于此步骤涉及协方差矩阵的反转,因此如果可用的观测值太少,它在数值上是不稳定的。

所以基本上你正在寻找的投影是由 LDA 制作的。但是,PCA 可以帮助减少 LDA 的输入变量的数量,因此矩阵求逆是稳定的。

在第一个投影中使用 PCA 有一个替代方法:PLS。PLS 基本上是 PCA 和 LDA 的模拟回归技术。Barker, M. 和 Rayens, W.:用于区分的偏最小二乘法,Journal of Chemometrics, 2003, 17, 166-173因此建议在 PLS 分数空间中执行 LDA。

在实践中,您会发现 PLS-LDA 需要的潜在变量少于 PCA-LDA。但是,这两种方法都需要指定潜在变量的数量(否则它们不会减少 LDA 的输入变量数量)。如果您可以根据您对问题的了解来确定这一点,请继续。但是,如果您从数据中确定潜在变量的数量(例如,解释的百分比方差、PLS-LDA 模型的质量……),请不要忘记保留额外的数据来测试该模型(例如外部交叉验证)。