什么是主成分分析?
什么是主成分分析?
主成分分析(PCA)是一种无监督机器学习算法,目的是在保留尽可能多的信息的同时,降低数据集中的维数(即特征数量)。它能把复杂、庞大的数据集简化,加快其他机器学习算法的后续分析。像图像这类维数过多的数据集,在用于机器学习训练时往往需要耗费大量时间和计算资源。主成分分析通过提取关键信息、剔除不必要的细节和噪声,可以减少数据集中的变量。剔除信息虽然会损失一定精度,但可以提升机器学习应用场景下的处理速度。
什么是主成分?
主成分是对原始数据集的一种概括性表示。这些表示所含的变量数量,等于或少于原始变量的数量。虽然 PCA 可以生成多个主成分,但第一主成分和第二主成分最为重要。二者共同构成一个用于表示主成分载荷的模型平面。它有助于工程师理解原始变量与主成分之间的对应关系。
如果没有这些数据点,机器学习算法就会缺乏用于对变量分布进行建模的数据。
第一主成分
算法通过 PCA 提取出最重要的变量,将其存储在第一主成分中。第一主成分是维度空间中的一种表示,它保留了数据集中的最多信息,也就是最大方差。您可以将其想象成一条穿过所有变量平均值且最接近大多数数据点的直线。
第二主成分
PCA 会把第二重要的信息存储在第二主成分中。第二主成分同样穿过平均值,但方向与第一主成分垂直。它保留了第二多的信息,并且与第一主成分不相关。
其他主成分
这一过程会不断重复,直到算法构建出所有主成分。最终得到的主成分会按照其特征重要性从高到低排列。前两个主成分构成了机器学习训练数据中最关键的表示。机器学习工程师可以舍弃其余主成分,从而简化模型学习,并获得准确度合理的结果。
需要注意的是,每个主成分之间互不相关。例如,第一主成分的变化不会影响第二主成分。
为什么主成分分析很重要?
机器学习模型用于学习的训练数据集正变得越来越复杂。需要学习的特征越多,训练机器学习模型所需的时间和算力就越多。主成分分析(PCA)能够简化数据集,帮助减轻机器学习工程师所面临的某些计算挑战。
防止过拟合
过拟合是指机器学习模型在训练期间表现良好,但在实际应用中却无法准确预测的情况。造成过拟合的原因之一,是训练数据中存在大量变量。PCA 能在保留关键信息的同时大幅减少变量数量,降低过拟合的风险。
缩短模型训练时间
使用复杂的训练数据集来训练模型,往往需要更长时间。因为涉及的变量太多,机器学习算法必须先分析大量数据,才能准确执行任务。PCA 可以降低训练数据集的维数,从而简化计算并加快训练完成速度。
克服多重共线性问题
当训练数据集中两个或多个变量彼此依赖时,就会出现多重共线性。在训练某些回归模型时,多重共线性可能影响训练结果,并导致预测不准确。PCA 能够检测出共线变量,并通过将其压缩为相互独立的特征,把这些变量从数据集中移除。
PCA 有哪些应用场景?
PCA 简化复杂数据集的能力,在以下应用中很有帮助。
图像压缩
利用 PCA,您可以将高分辨率图像文件压缩到更小的尺寸。该算法会重新生成现有图像特征的线性组合,同时不丢失重要信息。
噪声过滤
PCA 可通过将关键信息压缩到初始变量中来重构数据集。在训练期间,工程师可以丢弃那些无助于模型学习的冗余数据。
数据可视化
PCA 能对原始数据集进行降维,使数据点更易于解读,也更便于在图表和图形中绘制,得益于此,将复杂数据点映射到图表中变得更加容易。
金融预测
金融应用需要处理大量多维数据来分析和预测可能的结果。它们可利用 PCA 提取代表关键分布的主成分,从而简化计算。
面部识别
面部识别系统会将人脸扫描结果与大型数据库进行比对。为降低处理复杂度,科学家基于 PCA 开发了一种名为“特征脸”(eigenface)的方法。该技术通过每个人脸特有的差异模式来表示人脸,从而无需依赖眼睛、嘴巴、鼻子等显著特征也能完成识别。
主成分分析有哪些关键考量因素?
在使用主成分分析时,理解以下概念如何应用于重构数据集变量非常重要。
正交性
正交性描述了主成分之间的不相关关系。在二维平面上绘制时,第一主成分和第二主成分彼此垂直。二者相交于均值点,但所代表的数据点分布方差完全不同。
维数
维数是数据集中特征的数量。机器学习模型从高维数据中学习时会遇到困难。因此,工程师会采用 PCA 等降维技术,将特征压缩到更低维的空间。低维数据包含的特征更少,处理起来也更容易。
相关性
相关性是对数据集中两个或多个变量进行的一种统计分析。它用来衡量不同变量之间相关关系的强度和方向。如果一个变量的变化会影响另一个变量,那么这些变量就是相关的。在 PCA 中,主成分之间不应存在任何相关性,以确保它们彼此独立,不受外部影响。
协方差矩阵
与相关性类似,协方差也是衡量多个变量之间关系的指标。协方差矩阵用于计算并比较数据集中各变量之间的关系。在计算协方差矩阵时,PCA 算法会评估对称数据矩阵中初始特征的所有可能组合。
特征向量和特征值
特征向量和特征值均由协方差矩阵计算得出。特征向量表明哪个主成分包含的信息最多,而特征值则表示每个特征向量的重要程度。按照特征值大小排列特征向量,就能得到一组有序的主成分。
特征向量矩阵
特征向量矩阵由保留下来的特征向量组成,其中较不重要的特征向量已被舍弃。它将原始数据集转换为新数据平面上的低维表示。
主成分分析如何运作?
主成分分析在无监督学习过程中,通过线性变换来压缩高维数据集。多个计算节点会分别计算汇总后的变量,随后再将这些变量合并为一组主成分。下面,我们将说明每个节点所执行的步骤。
标准化
首先,每个节点都会对变量进行标准化,以防引入偏差。这一点很重要,因为 PCA 的准确性对原始变量的方差高度敏感。从数学上讲,标准化需要将每个变量的数值与其均值之差除以标准差,从而将变量转换到更小的尺度上。
协方差
接下来,节点会计算协方差矩阵,以判断变量之间是否相关。它通过从协方差矩阵中计算特征向量和特征值,来确定应当保留哪些主成分。
变量之间高度相关可能意味着存在冗余信息,这会增加训练过程中的计算时间。节点会按特征值大小排列主成分,从而剔除无用或冗余的成分。
变换
至此,数据只是完成了分析,原始数据集本身仍需要更新。上述所有步骤最终会得到一个特征向量矩阵,它代表最重要的主成分。通常,这个特征向量矩阵包含的变量数量少于原始变量数量。随后,节点将原始数据集与该特征向量矩阵结合,对其进行变换,生成一个更简单、更紧凑的最终数据集。
主成分分析与其他方法有何关联?
除了主成分分析,机器学习工程师还会使用其他方法进行降维。
多变量数据分析
多变量数据分析涵盖多种技术,用于分析和理解由多个变量构成的数据集。主成分分析是多种多变量统计方法中的一种技术。
因子分析
因子分析与主成分分析的运作方式相似,都是将变量重构为更小的部分。不过,两者的目的并不相同。因子分析用于衡量多个变量之间的关系,而主成分分析则生成加权变量的线性组合。
线性判别分析
主成分分析和线性判别分析都是降维方法。PCA 用于无监督学习,目标是沿线性方向尽可能多地表示数据方差。相比之下,线性判别分析是一种监督学习方法,它通过分析标签来提高分类任务的准确性。
AWS 如何帮助满足您的主成分分析需求?
Amazon Sagemaker 为主成分分析提供了可随时部署的基础模型和工具。您可以将 PCA 工作负载分配到多个节点,并在完成后收到汇总后的结果。它会针对这些汇总值执行奇异值分解,从而推导出主成分。
SageMaker 支持常规 PCA 和随机 PCA。
-
如果数据集包含稀疏特征或特征数量适中,请使用常规 PCA。
-
如果数据集包含大量变量,随机 PCA 更合适。
借助 SageMaker,您可以使用重构后的数据集轻松训练、部署和扩展机器学习模型。
立即注册免费账户,开始在 AWS 上使用主成分分析。
Browse all cloud computing concepts
Browse all cloud computing concepts content here:
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages