是否总是推荐使用 PCA?

机器算法验证 分类 主成分分析 降维
2022-02-11 08:35:46

我想知道在分类或回归问题之前是否总是可以将 PCA 应用于降维。我的直觉告诉我答案是否定的。

如果我们执行 PCA,那么我们计算特征的线性组合以构建解释数据集大部分方差的主成分。然而,我们可能会遗漏那些不能解释数据集的大部分差异但确实解释了一个类与另一个类的特征的特征。

我对么?。如果需要,我们是否应该始终使用 PCA 减小尺寸,或者需要考虑(如上所述)?

4个回答

盲目地使用 PCA 是灾难的根源。(顺便说一句,自动应用任何方法都不是一个好主意,因为不能保证在一种情况下有效的方法在另一种情况下也有效。我们可以用无免费午餐定理将这个直观的想法形式化。)

构造一个例子很容易,其中最小特征值的特征向量是最多信息的。如果您丢弃这些数据,您将丢弃对分类或回归问题最有用的信息,如果您保留它们,您的模型将会得到改进。

更具体地说,假设是我们的设计矩阵,并且每一列都以均值为中心。然后我们可以使用 SVD 来计算的 PCA 。(参见:SVD 和 PCA 的关系。如何使用 SVD 进行 PCA?AA

对于线性模型的示例,这给了我们一个分解

AV=US

我们希望将一些结果预测为 PC 的线性组合:其中是一些噪声。此外,让我们假设这个线性模型是正确的模型。yAVβ=y+ϵϵ

一般来说,向量可以是任何东西,就像在普通的 OLS 回归设置中一样;的唯一非零元素可能是对应于最小正奇异值的元素。在这种情况下,使用 PCA通过丢弃最小奇异值的维度也的唯一相关预测变量换句话说,即使我们从正确的模型开始,截断模型也不正确,因为它忽略了关键变量。ββAVy

换句话说,PCA 在监督学习场景中有一个弱点,因为它不是“感知”的。当然,在 PCA有用步骤将具有对应于较大奇异值的非零条目。yβ

我认为这个例子很有启发性,因为它表明即使在模型是线性的特殊情况下,截断也会有丢弃信息的风险。AV

其他常见的反对意见包括:

在这个密切相关的线程中可以找到更多示例(感谢@gung!):PCA 示例,其中低方差的 PC “有用”

首先,不可能推荐盲目地在某些数据上建立模型(如果您手头有无限数量的独立案例,您可能可以放宽这种禁止......)。

有一个与该问题相关的无免费午餐定理的公式:它指出,在所有可能的数据集上,没有模型比其他模型更好。从中得出的通常结论是,如果模型更适合手头的特定任务(包括分析的目的和数据的特定特征),则模型是优越的。

因此,您应该问自己的更明智的问题是您的数据是否具有使其适合 PCA 的特征。


例如,我主要处理光谱数据。这种数据具有与双线性模型(如 PCA 或 PLS)非常吻合的属性,而与选择特定测量通道(波长、特征)的特征选择相得益彰。特别是,由于物理和化学原因,我知道我正在寻找的信息通常在光谱的大范围内分布得很“薄”。因此,我经常使用 PCA 作为探索性工具,例如检查是否存在与我想要预测/研究的结果不相关的大方差。甚至可能看看我是否能找出这种差异的来源,然后决定如何处理。选择特定的波长几乎是不合适的。

相比之下,例如,与基因微阵列数据相比,我事先知道信息可能集中在几个基因中,而所有其他基因只携带噪音。在这里,需要进行特征选择。


我们可能会遗漏那些不能解释数据集的大部分方差但确实解释了一个类与另一个类的特征的特征。

当然,在我的回归领域(化学计量学)中,这种观察是从主成分回归转向偏最小二乘回归的教科书触发器。

当然不是,我不记得读过/听过任何科学方法的名称总是用这个词,更不用说 PCA 了。而且,还有许多其他方法可用于降维,例如 ICA、LDA、各种特征选择方法、矩阵/张量分解技术、自动编码器......

PCA 的两个主要限制:

1)它假设变量之间的线性关系。

2)组件比原始数据更难解释。

如果限制大于好处,则不应使用它;因此,不应总是使用 pca。IMO,除非有充分的理由,否则最好不要使用 PCA。