前面两篇文章讲了PCA和SVD,发现要完全理解,必须要有一些矩阵的基础知识。在这里再补充一下自己对特征值的理解,希望对大家有所帮助,有不正确的地方,欢迎大家指出。
现在,我们来看一看矩阵的特征值和特征向量。
我们发现有些向量比较特殊,用矩阵对它进行行列变换后,向量的方向没有变化,只是在原来的基础上,扩大或缩小了
倍,
。我们把这样的向量,称作矩阵的特征向量,而把这个
称作矩阵的特征值。(注:只有方阵才有特征值,特征值的数量和矩阵的行数相等)
特征值的发现能够方便我们计算。假设和
是矩阵
的两个特征向量,
,
;假设空间中的某个向量可以由特征向量表示,
。
用矩阵对向量
进行转换,
,只用把两个向量相加,我们就能知道变换后的结果,大大简化了我们的行列计算。
其实,我们可以把特征向量理解成一个特殊坐标系,每一个特征向量表示一个坐标轴,用矩阵的特征向量组成的坐标系来表示空间中的向量
,能够大大简化矩阵
对向量
的转换计算。
上面讲的,都是线性代数中的概念,没有什么实际意义。
在实际情况中,我们遇到的是数据,想处理的也是数据。一个矩阵包含的信息是一组数据,比如
个样本,每个样本又有
个维度的值。它不是一个方阵,也没有特征值和特征向量。我们能够用特征值对这个矩阵作什么处理呢?
虽然我们得到的数据矩阵没有特征值和特征向量,但是
却是一个
的方阵,并且是一个对称方阵。矩阵
是有特征值的,
。并且对称矩阵还有一个很重要的性质,对称矩阵的特征值两两正交,
。
证明:
如果特征值不相等的话,那么
,特征向量
假设矩阵,它是列由
的特征向量构成的一个矩阵,那么有
。假设
是一个对称矩阵,
。所以
。我们知道特征值
两两正交,因而
是一个正交矩阵。正交矩阵有一个性质,
。
证明:让我们来看下
的第
个元素,
。由于正交矩阵的列两两正交,那么
,
(因为
是单位向量),所以有
所以,,即
。
于是,对于一个对称矩阵,我们可以将其表示为:
,其中,
是一个正交矩阵,列向量是矩阵
的特征向量;
是一个对角矩阵,对角线上的值是矩阵
的特征值。
这个性质很巧,正式我们在PCA里面用到的矩阵的斜对角定理。
有了这样的特征矩阵,我们可以将看作一个坐标系,这个坐标系有一个很好的性质,就是和我们经常看见的
我们最想做的事情是,对数据进行转换,转换后它各个维度之间相互独立,相关性为0,这样可以有助于我们更清晰的分析各个维度。矩阵
的特征向量构成的坐标系
,正好就有就有让原数据
转化后,各个维度之间相互独立的这个神奇的特点。
将原数据转换到该坐标系上,
。我们再来计算一下转换后矩阵的协方差系数,发现矩阵
各个坐标系之间的数据相互独立,即
,
是一个对角矩阵,就是说转化后的矩阵
,各行之间的数据相关性为0。这就是我们在PCA详解里面说的主要思想,这里
由于这次讲的概念比较简单,我贴了两个证明过程,增加一点内容,希望能够帮助大家理解。同样,有问题欢迎大家提出。
至此,我的PCA,SVD,特征值三部曲全部完成。