Advertisement

机器学习 -- PCA学习笔记

阅读量:

PCA原理与应用解析

简介

主成分分析法,又称Principle Component,通常应用于数据压缩,其核心功能是将高维数据转换为低维数据。在机器学习领域,该方法常作为执行某些算法前的预处理步骤,旨在降低训练集中的特征维度,从而简化模型结构或提升算法运行效率。

直观理解

其核心思路在于,确定一个维度较低的超平面,使得该超平面能够使所有高维数据点至该低维超平面的垂直距离达到最小化。此处所提及的“最小”概念将在后续部分进行详细阐述,并可通过具体的数值指标加以量化。

以二维数据为例,假设 x^((i)) ∈ R2 ,若我们能够找到一条一维的“超平面”(即一条直线),使得所有训练样本点至该直线的垂直距离达到最小值,则可将这些二维数据投影到该直线上,从而转化为一维数据,实现对原始数据的降维处理。如下图所示:

这里写图片描述

同样地,针对三维数据集而言,我们能够确定一个二维的超平面,使三维空间中的点投影至该二维平面上,从而转化为二维数据。当然,对于三维数据而言,若条件允许,我们更倾向于寻找一个一维的超平面,将三维数据直接压缩为一维数据。然而从理论层面以及直观感受来看,所跨越的维度差异越大,可能引发的信息损失也就越显著。因此,此类压缩方式对原始数据中所蕴含的规律性提出了较高的要求。

这里写图片描述

算法流程解析

以下即为执行 PCA 算法的具体步骤,其中涉及较为复杂的数学原理,例如奇异值分解等内容,因此对于这部分知识无需完全掌握,只需了解整体流程即可。

首先需要对所有特征实施归一化操作(即特征缩放),将其转换至统一的数值范围,从而确保各个 feature 之间具备可比性。计算公式为 x_j^i= \frac{x_j^i− μ_j}{s_j},其中 u_j 表示训练数据中各类特征的均值,而 s_{j} 则代表该类特征的标准差。完成特征缩放之后,所有特征将呈现出均值为 0、标准差为 1 的分布特性。

这里写图片描述

在完成缩放操作之后,PCA 的实施工作即可正式启动。相关算法的具体执行步骤如以下图表所示:

## 标题 ##

第一行的代码用于求解协方差矩阵 Sigma
第二行对 Sigma 执行了奇异值分解 操作,从而获得了三个独立的矩阵。在数据压缩与还原的过程中,我们均采用了矩阵 U ,而 S 则可用于评估压缩过程中的误差情况。
第三步中设定的 k 参数表示目标压缩后的维度。
最终得到的 Z 即为完成压缩后的数据结果。
由于缺乏对协方差矩阵及奇异值分解相关知识的理解,因此难以深入掌握该算法背后的数学原理,但从实际应用角度来看,其操作过程已足够清晰和可行。

数据恢复

此外,当有需要时,我们能够对 Z 矩阵实施解压操作,使其恢复为高维数据形式。这一过程依赖于 U 矩阵(基于奇异值分解的特性)来完成。然而需特别注意的是,PCA 属于有损压缩方式,因此低维数据无法完全还原为原始的高维数据,仅能获得一个近似值。

将低维数据重新转换为高维数据所采用的公式为: X = Z * U_{reduce}^T 。这是因为矩阵 U 具备酉矩阵的特性,其满足如下关系:U^{−1}= U^{T}。由此可推知,结合上图第四行代码进行逆向分析后得出以下等式:
Z * U_{reduce}^{-1} = X
X = Z * U_{reduce}^T

压缩误差

鉴于 PCA 属于有损压缩方式,那么数据损失率需控制在何种程度才能确保压缩过程具有可行性?为此,需要引入一个衡量标准,即当压缩误差率低于 1% 时,方可认为该压缩方法具备有效性,能够保留数据中的主要特征。这一关系可通过以下公式进行表达:

这里写图片描述

其中,x^{(i)} 表示未经处理的原始特征信息,而 x_{approx}^{(i)} 则代表经过压缩后再还原得到的数据。该表达式的意义较为直观,即原始数据与压缩后还原数据之间差异(以欧氏距离衡量)所占的比例。当这一比例低于 0.01 时,表明所采用的压缩方式具有可行性。此外,该方法还可用于确定压缩后的维度 k,从一维逐步增加至 N-1 维(N 表示原始特征的数量),通过迭代的方式寻找第一个满足上述条件的 k 值作为最优解(虽然误差并非最小,但差距不大,在较低维度下实现性能与效率的平衡是一种合理的选择)。

在计算压缩误差方面,还存在另一种途径:通过奇异值分解过程中所获得的 S 矩阵进行计算,具体公式如下:

这里写图片描述

当奇异值分解符合前述公式时,意味着压缩所产生的误差将低于 0.01。此处存在一个专门术语用于描述该条件,即方差。若矩阵 S 满足上述表达式,则可表述为保留了 99% 的方差。

前述两个公式之间可以相互转换,然而在已知矩阵 S 的前提下,采用第二个公式进行计算的效率将显著提升。

这里写图片描述

再补充一项有关矩阵 S 的信息:依据 Andrew Ng 所提供的视频内容,矩阵 S 具有对角矩阵的特性,其具体结构形式如下

这里写图片描述

PCA 的应用和注意事项

应用

  • 数据压缩

    • 降低数据所占用的存储容量(数据维度有所缩减)

    • 提升算法运行效率

    • 数据可视化

      • 将数据压缩至 k=2 或 k=3 的维度后,再进行图形绘制

注意事项概述

需要特别注意的是,我们仅利用训练集对PCA进行训练,以获得最佳的降维超平面。在交叉验证集和测试集中,我们直接将高维数据映射至低维空间,随后进行模型验证与性能评估。

一个典型的错误应用方式是将PCA作为防止过拟合的手段。根据Andrew Ng的课程内容,这种做法并不恰当,因为PCA在处理过程中并未涉及目标变量y的信息。虽然在某些情况下可能表现出一定效果,但并不建议采用这种方式。最后需要强调的是,在构建机器学习模型的初期阶段不应优先考虑使用PCA,该方法应作为完成整个建模流程后的后期优化步骤来加以应用。

全部评论 (0)

还没有任何评论哟~