PCA的深层解读:
PCA的核心思想:通过寻找几个线性组合,将样本参数综合起来,从而更有效地区分个体样本。
以学生的成绩为例进行简单类比:各科成绩的组合构成了学生的总成绩。若只看单一科目,很难准确评价学生,但通过总成绩这一线性组合(所有科目成绩的综合),就能更直观地区分学生。在这个类比中,每一科目的权重都是等价的。
这其实就是一个简化的主成分分析例子,虽然只涉及一个主成分,但其线性组合(算数平均值)是核心。
如果更重视理科成绩,我们可以通过调整数理化等科目的权重来计算总成绩。这样的操作使得原本总分相同但理科成绩突出的学生在新的总成绩中得以凸显。这种类比可以帮助我们理解第二主成分的概念。
假设我们以总成绩为横轴,调整理科权重后的总成绩为纵轴,这样就能将学生划分为不同的:全面发展的学生、理科优秀的学生、文科优秀的学生以及全面表现一般的学生。
这样,主成分分析的原理就更加易于理解了。
主成分分析是在寻找几个(通常是2个)不相关的线性组合,这些组合对样本参数进行综合,以便最大程度地区分样本个体。
在过去的分析中,我们需要关注6个科目的成绩来评价学生,这往往导致区分度不高。而现在,只需要看总成绩就能对学生进行排序。这种从6个维度降到1个维度的过程就是降维,而能够进行排序则意味着区分度的实现。
可能需要较多的线性组合才能达到这一目标,这可能使我们无法实现降维的目的。我们通常只选取那些对角线元素和占原来方差80%以上的组合,这样只需要少量的几个线性变换,同时也能保留大部分的信息。
值得注意的是,协方差矩阵是一种实对称矩阵。
实对称矩阵可以通过不相关的线性变换实现对角化,使得矩阵中只有对角线有非零元素。
这种线性变换实际上就是特征向量的应用。
对角线上的元素即特征值,其和等于原方差。
主成分分析的问题可以转化为:求取协方差矩阵的特征对【特征值和对应的特征向量】。
我们依次寻找最大的特征值(其值应不低于原方差的80%)及其对应的特征向量,这些就是我们需要的线性变化。
最大的特征值对应的特征向量就是第一主成分的方向。
虽然Excel也可以求取特征对,但效率较低。通常我们会使用编程语言如Python,利用numpy等库的函数进行快速计算。
使用Python对相关系数矩阵(或协方差矩阵)进行特征对(特征值和特征向量)的计算,numpy的np.linalg.eig(arr)函数可以轻松实现。
值得注意的是,协方差矩阵和相关系数的特征对虽不一致,但理解其原理是关键,使用哪个进行计算均可。
从给出的数据中,我们可以明显看到最大的两个特征值3.389和1.390,它们的和占整体方差的79.65%,接近80%。对应的特征向量矩阵的前两列就是我们需要的线性组合。
为了进一步验证,我们还可以使用R语言进行复核。
第一个特征向量显示的权重较为均衡且同向,可以理解为赋予了总成绩的特殊意义。
第二个特征向量则显示了权重的正负之分,可以理解为反映了学生的偏科情况。
通过这两个线性变换对参数进行综合,不仅能赋予其实际意义,还能更直观地区分个体。