转载自:http://blog.codinglabs.org/articles/pca-tutorial.html
图片自:https://blog.csdn.net/Murray_/article/details/79945148
说明:本文转载自大神之作,稍加自己的理解。图片即为大神之作的截图,重点已经标注出来。
PCA/EOF的区别与联系
本质上PCA和EOF没有什么不同,只是:
EOF为空间特征向量,也称为空间模态,在一定程度上反映了要素场的空间分布特点;
PC(主成分)对应时间变化,也称为时间系数,反映相应空间模态(EOF)随时间的权重变化。
简而言之,二者是利用经验正交分解过程中的两个重要元素。
在地学中,PCA和EOF通常用于信号提取,从繁杂的时空数据中分离出地理要素的时空变化特征,是进行地学信号分析的前提。
PCA/EOF的本质
其本质是降维,通过PCA/EOF,提取出信号的主要变化特征。
用通俗易懂的解释可以理解为:
1.已知二维坐标系下的一组离散数据:(X1,Y1),(X2,Y2),…,(Xn,Yn)
需要将其只用一组维数据表示为:Z1,Z2,…,Zn
2.为了区分这些点,本质上是找到二维平面中的一个向量,让各个点投影到该向量上时,各个点能最大程度的得到区分(即方差最大)。
3.为了实现这一过程,需要用到经验正交分解,求解特征向量。
特征向量的意义就是这条可以最大程度区分各个点的向量。
PCA/EOF的原理
文章分析脉络梳理:
1.向量A和B的内积表示的是向量A在B上的投影长度。那么将一个向量与新的基做内积,结果则表示该向量在新的基下的坐标。
2.将新选定的基表示成矩阵形式,与原向量相乘,就得到了原向量在新选定的基所表示的空间(或坐标系)中的坐标表示了。
3.怎样选定这组基用于数据降维?(目标)
(1)首先将数据变换到选定基上后,数据的方差要大,尽量分散。
(2)各个基要正交(表示的信息要不相关,若单纯按方差选定基,则选定的基存在很大的相关性)
4.怎么做?怎么找这组正交基? (做法)
(1)协方差矩阵可以很好地表示各个特征的方差和不同特征之间的协方差
(2)按目标要求需要将协方差矩阵除去对角线元素化为0,对角线元素按从大到小排列。协方差矩阵对角化。
(3)对角化后按特征值大小排列,选定前k个最大的特征值对应的特征向量作为降维后的新基。
以下为转载的主要内容:
PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。网上关于PCA的文章有很多,但是大多数只描述了PCA的分析过程,而没有讲述其中的原理。这篇文章的目的是介绍PCA的基本数学原理,帮助读者了解PCA的工作机制是什么。
当然我并不打算把文章写成纯数学文章,而是希望用直观和易懂的方式叙述PCA的数学原理,所以整个文章不会引入严格的数学推导。希望读者在看完这篇文章后能更好的明白PCA的工作原理。
进一步讨论
根据上面对PCA的数学原理的解释,我们可以了解到一些PCA的能力和限制。PCA本质上是将方差最大的方向作为主要特征,并且在各个正交方向上将数据“离相关”,也就是让它们在不同正交方向上没有相关性。
因此,PCA也存在一些限制,例如它可以很好的解除线性相关,但是对于高阶相关性就没有办法了,对于存在高阶相关性的数据,可以考虑Kernel PCA,通过Kernel函数将非线性相关转为线性相关,关于这点就不展开讨论了。另外,PCA假设数据各主特征是分布在正交方向上,如果在非正交方向上存在几个方差较大的方向,PCA的效果就大打折扣了。
最后需要说明的是,PCA是一种无参数技术,也就是说面对同样的数据,如果不考虑清洗,谁来做结果都一样,没有主观参数的介入,所以PCA便于通用实现,但是本身无法个性化的优化。
希望这篇文章能帮助朋友们了解PCA的数学理论基础和实现原理,借此了解PCA的适用场景和限制,从而更好的使用这个算法。