大学的线性代数中总是让我们求矩阵的特征值与特征向量,但是我们为什么要去求它呢?它俩在实际的工程中又代表什么含义?
从很多年前接触到“特征值”这个词开始,我就一直有个疑问没搞明白,为啥矩阵 “特征值”和“特征向量”中的“特征”,与我们日常理解的、一般口语中的“特征”差异怎么就那么大呢?!
比方说张飞的“特征”是高大,黑,大胡子……,但矩阵的“特征值”却是:设A是n阶方阵,如果数λ和n维非零列向量x使关系式Ax=λx 成立,那么这样的数λ称为矩阵A的“特征值”。张飞的特征例子和特征值的定义放在一块,真的非常的风马牛不相及!矩阵的“特征值”想要表现矩阵的“特征”是什么?
直到最近我开始留意国外教材中,关于“特征值”的英文单词的“eigenvalue”的词根“eigen”后,最后形成了一把解开我心中这个结的钥匙。Eigen 翻译过来叫做“本征”、“固有的”、“自己的”。在这里,我认为“固有的”、“本征”解释会比“特征”更加贴近原意。在线性代数中,如果将一个向量在空间中展示的话,会有2个“固有”或“本征”的特性,一个是其方向,一个是其长度。一个方阵A左乘一个非零列向量x,往往是表示“将这个向量x进行线性转换”的意思。而转化的过程,就是通过A。举个例子来说,下图,要将向量v转化成向量V,那么就需要改变v的方向,然后拉长其长度。
这个时候回过头来再看看“eigenvalue”和“eigenvector”的定义,我们就能够借鉴上面的转换例子来了解到:这个矩阵A,对向量x进行了转换后,并没有改变其“固有”的方向,却只改变了向量的长度λ倍。所以说,这个时候和向量的“固有”特性、“本征”从语言和逻辑上就扯上关系了,而且还不是牵强附会那种。
为了进一步直观的理解上面的话,我们还是举二维向量的例子吧
综合以上的分析过程看来,“eigenvalue”应该是这样理解:矩阵A在不改变某些向量“固有”方向的基础上,对向量只进行长度λ倍的变换,因此λ就是矩阵A能将这些向量进行保留“本征”变换的倍数值。而“eigenvector”就是矩阵A能够进行这种保留“本征”变换λ倍的那些向量。因此,有些港澳台或者国外翻译的教材,并不把“eigenvalue”翻译成特征值,而是“本征值”,我觉得这么翻译反而更有道理,更贴近原意。
当然了,说到最后,我还是觉得这次解惑的探索过程,应验了某句名言“问题讲清楚了,就解决了一半”。确实,很多求知过程中遇到的问题,理解不了,主要是因为没搞懂“概念”或者没能搞懂确切的含义。当搞清楚或澄清了“是什么”的问题后,问题反而就解决了!
主成分分析:
主成分分析是一类常用的针对连续变量的降维方法,选取能够最大化解释数据变异的成分,将数据从高维降到低维,同时保证各个维度之间正交。
主成分分析的具体方法是对变量的协方差矩阵或相关系数矩阵求取特征值和特征向量,经证明,对应最大特征值的特征向量,其方向正是协方差矩阵变异最大的方向,依次类推,第二大特征值对应的特征向量,是与第一个特征向量正交且能最大程度解释数据剩余变异的方向,而每个特征值则能够衡量各方向上变异的程度。因此,进行主成分分析时,选取最大的几个特征值对应的特征向量,并将数据映射在这几个特征向量组成的参考系中,达到降维的目的(选择的特征向量数量低于原始数据的维数)。
当分析中所选的变量具有不同的量纲,且差别比较大的情况下,应选择相关系数矩阵进行主成分分析。
主成分分析适用于变量之间具有相关关系,变量在三维空间中呈现椭球形分布。多变量之间有显著的强线性相关,表明主成分分析是有意义的。
原始数据可以使用原坐标系中的向量来表示,协方差矩阵的特征向量为A和B,由于A方向的变异远大于B方向,因此,将所有点映射到A上,并使用A作为参考系来᧿述数据,这样忽略了数据在B方向上的变异,但却将二维的数据降低到了一维。