PCA 与内核 PCA 的优缺点

机器算法验证 机器学习 主成分分析 内核技巧
2022-03-22 13:53:21

PCA 用于降维。我今天了解到,PCA 不能用于非线性数据。当非线性时,您必须使用内核 PCA (KPCA)。

似乎由于 KPCA 更适用于更多种类的数据,因此它似乎是一种更好的方法,除了它的计算时间更长。KPCA 是否真的优于 PCA,或者当数据是线性时使用 KPCA 是否有任何实际缺点?

似乎如果计算效率不是那么大的问题,我几乎总是可以天真地使用 KPCA。

1个回答

内核 PCA (kPCA) 实际上包括常规 PCA 作为特例——如果使用线性内核,它们是等价的。但是,它们通常具有不同的属性。以下是一些比较点:

  • 线性与非线性结构。kPCA 可以捕获数据中的非线性结构(如果使用非线性内核),而 PCA 不能。这可能很重要。如果需要此功能,则根本不能选择 PCA,而必须使用 kPCA(或许多其他非线性降维技术之一)。如果数据真的存在于线性流形上,那么 kPCA 的表现不会比 PCA 好。事实上,使用非线性内核可能会由于过度拟合而导致性能更差。

  • 可解释性。PCA 提供了一组权重,定义了从输入空间到低维嵌入空间的线性映射。这些权重可以提供有关数据结构的有用信息。具有非线性内核的 kPCA 不存在这样的权重,因为映射是非线性的。它也是非参数的。

  • 逆映射。PCA 提供了从低维空间到输入空间的逆映射。因此,输入点可以从它们的低维图像中近似重建。kPCA 本身并不提供逆映射,尽管可以使用其他方法来估计一个(以额外的复杂性和计算资源为代价)。

  • 超参数。这两种方法都需要选择维数。kPCA 还需要选择核函数和任何相关参数(例如,RBF 核的带宽,或多项式核的次数)。这种选择(以及用于实现它的方法/标准)取决于问题。通常,需要多次重新拟合 kPCA 以比较不同的内核/参数选择。

  • 计算成本。PCA 通常比 kPCA 具有更低的内存和运行时要求,并且可以扩展到海量数据集。存在各种用于扩大 kPCA 的策略,但这需要进行近似(例如,参见 Nystroem 近似)。

像往常一样,适合工作的工具取决于问题。