PCA综合指南

简介: PCA综合指南

介绍


机器学习中最受追捧且同样令人困惑的方法之一是主成分分析(PCA)。无论我们在不应对PCA复杂性的情况下建立模型的意愿如何,我们都无法长期远离它。PCA的优点在于其实用性。


在本文中,首先,我们将直观地了解什么是PCA,如何完成以及其目的。发布后,我们将深入研究PCA背后的数学:线性代数运算,PCA的原理,含义及其应用。

[图片上传失败...(image-a48337-1609686500170)]


目录


  • 信噪比(SNR)
  • 维度诅咒
  • 逐步进行PCA的方法
  • 通过PCA改善SNR
  • 线性代数运算
  • 奇异值分解的示例
  • 降维
  • 可变约简
  • 因子加载以及如何选择变量
  • PCA可以应用于各种数据吗?


讲故事的时间


让我们先问一下您想听哪个广播电台?我喜欢听104.8 FM(是的!播放爱情歌曲的电台..![图片上传失败...(image-4e886f-1609686500176)]


好吧,所以现在一旦我们以104.8的频率调谐到FM,我们就能获得我们选择的广播电台。此外,如果您有注意,如果我们以稍高的频率(例如105或104.5的较低频率)调谐FM,我们仍然可以听到广播电台的声音,但是,当我们离开104.8的频率时,会发生一些情况。 。


8.png

pca故事


x轴表示FM频率,我们将104.8作为所需的无线电频道音高。

现在,随着我们在上侧或下侧远离所需的FM频率,我们开始收到不需要的信号,即无线电广播变得杂乱无章。换句话说,在104.8的特定频率上,我们获得了所需电台的最大音量或振幅,但是当我们从104.8发散时,通道的音量下降了。这使我们想到了噪声和信号的概念。


在统计数据中,我们感兴趣的信号或存在的信息存储在数据的分布范围(或方差)中。在我们的示例中,频率是我们需要的信息。这也称为信噪比。


7.png

pca-信息


信噪比(SNR)


我们有一个由两个维度x 1和x 2组成的数学空间,这两个维度之间的数据散布如下所示。

当我们仅从x 1的角度来看空间时 ,扩展量在x 1 min和x 2  max之间,即x 1捕获的信息内容。并且,从x 2看数据, 由x 2 维表示的信号或扩展量在x 2 min和x 2  max之间。


6.png

pca-信噪比(SNR)


通过同时考虑x 1和x 2一起分析此数据,我们看到存在一个更大的范围,其中包含有关x 1 和x 2如何 相互影响的信息。从x 1 的角度看数据时,存在于另一维中的数据(即数据点中的展宽或垂直升力)仅是x 1的噪声, 因为x 1 无法解释这种变化。同样,从x 2的角度来看,数据点的垂直升力也是噪声,因为x 2 也不能解释这种分布。


因此,将存在于两个维度上的数据点放在一起,我们看到在数学空间中存在协方差,表明x 1 和x 2 相互影响。


因此,信号是变量的所有有效值,该变量的范围介于其各自的最小值和最大值之间,并且该噪声由数据点在最佳拟合线上的分布所表示。数据中这种无法解释的变化是由于随机因素造成的。


PCA的目标是最大化或增加该信号含量并减少数据中的噪声含量。


5.png

pca-SNR公式


资料来源:gstatic.com

现在,将齿轮转向理解PCA的其他目的。


维度诅咒


当使用Y作为目标变量构建模型时,该模型将两个变量用作预测变量x 1 和x 2并将其表示为:


Y = f(X 1,X 2

在这种情况下,模型f预测自变量x 1 和x 2与因变量Y之间的关系。在使用任何可用算法构建此模型时,我们实际上将x 1 和x 2 作为变量。算法的输入。这意味着该算法从x 1变量中存在的信息内容和x 2 变量中存在的信息内容作为两个参数获取输入。


所有算法都假定这些使数学二维空间与目标变量一起构成的参数彼此独立,即x 1 和x 2互不影响 。Y分别强烈依赖于X 1 和X 2。 实际上,经常违反X 1 和X 2彼此独立的假设。

当X 1 和X 2相互依赖时,这些变量最终将彼此交互。换句话说,它们之间存在相关性。当两个自变量相互之间非常强烈地相互作用时,即相关系数接近1时,我们将在二维上为算法提供相同的信息,这不过是冗余。这不必要地增加了数学空间的特征的维数。当我们有太多的维度超出要求时,我们就会陷入维度诅咒。


在模型中具有更大维度的影响,仅是数据中具有多重共线性,可能会导致过度拟合,这会使模型暴露出方差误差,即模型可能无法执行或预测新的看不见的数据。

PCA还有助于减少这种依赖性或独立维度之间的冗余。


稍后我们将详细介绍PCA如何帮助减少尺寸上的这种冗余。了解了PCA是什么之后,现在让我们探究PCA及其相关数学的工作原理。


逐步进行PCA的方法


PCA所做的是,它实际上是旋转坐标轴,使轴捕获几乎所有信息内容或方差。下面的剪辑直观地描述了它。我们将逐步了解如何实现这一目标。


[图片上传中...(image-401ce6-1609686500162-0)]


资料来源:medium.com


上面我们看到两个独立的参数X 1和X 2被输入到模型中。在Python实现中,我们将使用model.fit(x1,x2)来实现。到现在为止我们知道,该模型仅捕获预测变量中可用的各个信息,而不捕获联合分布,因为联合分布表明这两个变量如何一起变化。到目前为止,彼此之间已在模型中捕获,并且协方差

PCA的目的是捕获此协方差信息并将其提供给算法以构建模型。我们将研究PCA流程中涉及的步骤。


可以从我的Github存储库访问PCA的工作和实现


步骤1:标准化自变量


当我们将Z分数应用于数据时,则实际上是将数据点居中于原点。我们将数据居中意味着什么?


从上面的FM频率图表中,可以说104.8是中心值,即x-bar表示的平均值或平均值,而其他频率是xi值。将这些xi值转换为Z分数时,其中Z =(x i  – x bar)/标准偏差

取任何x i 值,即以标准偏差为单位的距离,即该x i 值与中心值或平均值之间的标准差为多少,由该x i 点的Z得分表示。


当x i大于平均值时,则以标准偏差或换句话说,此计算出的距离为标准值,即当xis小于x-bar时,Z分数将为正,而Z分数将为负。当Z分数越过中心值时从正值变为负值,然后用 Z分数公式=(x i  – x bar)/标准偏差代以x i = x-bar时,分子变为零。


简而言之,标准化的过程是获取所有数据点,并将频率平均值从104.8移为零。这意味着从其维度中减去所有维度上的数据,以将数据点移至原点。


在进行此标准化之后,位于平均值104.8较高侧的所有频率(数据点)均变为正值,而位于平均值104.8较低侧的所有频率均变为负值。这称为居中。


4.png

减去均值后的pca x


步骤2:为所有维度生成协方差或相关矩阵


在下一步中,我们将捕获所有维之间的协方差信息。在原始二维空间中,数据如下所示,其中x 1 -bar和x 2 -bar是各自的平均值,并且在x 1和x 2之间具有协方差。


当我们标准化数据点时,会发生的是中心值变成维度,并且数据分散在其周围。在将x i s转换为Z分数时,x i值从原始空间转移到新空间,在该空间中数据居中,所有轴分别为x 1  bar,  x 2  bar,x 3  bar和以此类推。


3.png

为所有方差生成协方差和相关矩阵


在这个新的数学空间中,我们找到x 1和x 2之间的协方差,并以矩阵形式表示它,并获得如下所示的值:


2.png

pca矩阵


该矩阵是X 1和X 2的二维空间之间包含多少信息的数字表示。


在矩阵中,对角线上的元素是x 1自身和x 2自身的方差或散布,这意味着变量本身包含多少信息。因此,对角线几乎总是接近1,因为它显示了变量如何与self一起表现。


信号或信息的程度由非对角元素表示。这些指示x 1和x 2之间的相关性,这就是这两个相互交互或变化的方式。正相关表示正线性关系,负相关值表示负线性关系。必须使用这些新发现的信息作为构建模型的输入。


步骤3:本征分解


本征分解过程将X1和X2之间的原始协方差矩阵转换为另一个矩阵,该矩阵类似于下面的矩阵。


在这个新矩阵中,对角线为1,非对角线元素接近于零。该矩阵表示根本没有信息内容的数学空间。所有信息内容都在轴上,这意味着该轴已观察到所有信息内容,并且新的数学空间现在为空。


在此过程中,我们得到两个输出,如下所示:

  1. 特征向量:这些是新数学空间的新维度,并且
  2. 特征值:这是这些特征向量中每一个的信息内容。它是每个特征向量上数据的散布或方差。


我们将在下面详细介绍特征向量和特征值的这些输出的含义和数学运算,以及轴如何吸收所有信号。


步骤4:对对应于各自特征值的特征向量进行排序

主成分协方差矩阵


在数学上,我们通过将给定矩阵乘以其转置形式来获得协方差矩阵。协方差矩阵不过是从sns.pairplot()获得的对图的数字形式。


下面是关联矩阵和配对图的示例。在对图中,我们可以看到两个变量之间存在一定的相关性,并且该关系在此协方差矩阵中以数字形式表示。因此,该矩阵反映了数学空间中有多少信息,而对图则是该信息的图形表示。


对图中的对角线显示变量如何表现,非对角线显示两个变量之间的关系,方式与协方差矩阵相同。到现在为止,我们已经知道该非对角线信息尚未馈入模型,并且我们的假设是,一旦我们也将这些非对角线信号也发送给模型,则模型性能会更好,因此将反映在生产中。


1.png

pca矩阵图


通过PCA改善SNR


进行PCA的第一步是使数据居中,这是通过仅对独立变量进行标准化来完成的。我们从每个维度上的各自的xis中减去了平均值,即已将所有维度转换为各自的Z分数,并且Z分数的获得使我们的数据居中。


对于二维数据,以上视觉效果表明,较早的轴是相应的x轴,现在是新的轴。数据仍然以与原始空间相同的方式定向,只是现在它已经成为中心。

该信息被转换为协方差矩阵。在此协方差矩阵上,我们应用本征函数,它是线性代数函数。使用此代数将维度转换为一组新的维度。


应用本征函数时,概念上发生的是旋转数学空间。转换是轴在数学空间中的旋转,并标识了两个称为特征向量的新维度:E1和E2。

相关文章
|
6月前
|
机器学习/深度学习 数据采集 编解码
数据分享|R语言PCA主成分、lasso、岭回归降维分析近年来各国土地面积变化影响
数据分享|R语言PCA主成分、lasso、岭回归降维分析近年来各国土地面积变化影响
|
6月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
3月前
|
机器学习/深度学习 算法 数据中心
【机器学习】面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?PCA与线性判别分析LDA降维的区别?
本文介绍了主成分分析(PCA)算法,包括PCA的基本概念、算法过程、中心化处理的必要性、正交变换的目的,以及PCA与线性判别分析(LDA)在降维上的区别。
89 4
|
3月前
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】PCA 主成分分析算法过程及原理讲解
主成分分析(PCA)的原理和算法过程。
75 0
|
6月前
|
机器学习/深度学习 数据可视化 算法
【视频】主成分分析PCA降维方法和R语言分析葡萄酒可视化实例|数据分享
【视频】主成分分析PCA降维方法和R语言分析葡萄酒可视化实例|数据分享
|
6月前
|
机器学习/深度学习 监控 数据可视化
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例2
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例
|
6月前
|
机器学习/深度学习 数据采集 数据可视化
R语言SVM、决策树与因子分析对城市空气质量分类与影响因素可视化研究
R语言SVM、决策树与因子分析对城市空气质量分类与影响因素可视化研究
|
6月前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化
R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化
|
6月前
|
机器学习/深度学习 数据可视化 算法
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为1
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
6月前
|
数据可视化 安全 数据挖掘
数据分享|R语言用主成分分析(PCA)PCR回归进行预测汽车购买信息可视化
数据分享|R语言用主成分分析(PCA)PCR回归进行预测汽车购买信息可视化