大家好,欢迎来到IT知识分享网。
前面两篇文章讲了PCA和SVD,发现要完全理解,必须要有一些矩阵的基础知识。在这里再补充一下自己对特征值的理解,希望对大家有所帮助,有不正确的地方,欢迎大家指出。
首先,让我们来理解一下矩阵。很多地方都提到过,我们可以将向量与矩阵相乘,理解成对向量的一次转换,也就是行列变换。
假设我们有一个 3 × 3 3\times 3 3×3的单位矩阵 I I I,有一个向量 a a a。我们知道 I a = a Ia=a Ia=a。
I = [ 1 0 0 0 1 0 0 0 1 ] , a = [ a 1 , a 2 , a 3 ] T I= \left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} \right] , a=[a_1,a_2,a_3]^T I=⎣⎡100010001⎦⎤,a=[a1,a2,a3]T
现在我们将单位矩阵的第一行乘上2,
I ′ = [ 2 0 0 0 1 0 0 0 1 ] , I ′ a = [ 2 a 1 , a 2 , a 3 ] T I'= \left[ \begin{matrix} 2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} \right], I'a=[2a_1,a_2,a_3]^T I′=⎣⎡200010001⎦⎤,I′a=[2a1,a2,a3]T
可以看到,矩阵a的第一行也变成了原来的两倍。我们再将 I ′ I' I′的第二行加到第一行上面去,
I ′ ′ = [ 2 1 0 0 1 0 0 0 1 ] , I ′ ′ a = [ 2 a 1 + a 2 , a 2 , a 3 ] T I''= \left[ \begin{matrix} 2 & 1 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} \right], I''a=[2a_1+a_2,a_2,a_3]^T I′′=⎣⎡200110001⎦⎤,I′′a=[2a1+a2,a2,a3]T
可以看到,矩阵a也将第二行加到第一行上面去了。所以,我们的确可以将向量与矩阵相乘,理解成对向量的一次行列变换。
现在,我们来看一看矩阵的特征值和特征向量。
我们发现有些向量 x x x比较特殊,用矩阵对它进行行列变换后,向量的方向没有变化,只是在原来的基础上,扩大或缩小了 λ \lambda λ倍, A x = λ x Ax=\lambda x Ax=λx。我们把这样的向量,称作矩阵的特征向量,而把这个 λ \lambda λ称作矩阵的特征值。(注:只有方阵才有特征值,特征值的数量和矩阵的行数相等)
特征值的发现能够方便我们计算。假设 x 1 x_1 x1和 x 2 x_2 x2是矩阵 A A A的两个特征向量, A x 1 = λ x 1 Ax_1=\lambda x_1 Ax1=λx1, A x 2 = λ x 2 Ax_2=\lambda x_2 Ax2=λx2;假设空间中的某个向量可以由特征向量表示, a = α x 1 + β x 2 a=\alpha x_1 + \beta x_2 a=αx1+βx2。
用矩阵 A A A对向量 a a a进行转换, A a = α A x 1 + β A x 2 = α λ 1 x 1 + β λ 2 x 2 Aa=\alpha Ax_1 + \beta Ax_2=\alpha \lambda_1 x_1 + \beta \lambda_2 x_2 Aa=αAx1+βAx2=αλ1x1+βλ2x2,只用把两个向量相加,我们就能知道变换后的结果,大大简化了我们的行列计算。
其实,我们可以把特征向量理解成一个特殊坐标系,每一个特征向量表示一个坐标轴,用矩阵 A A A的特征向量组成的坐标系来表示空间中的向量 a a a,能够大大简化矩阵 A A A对向量 a a a的转换计算。
上面讲的,都是线性代数中的概念,没有什么实际意义。
在实际情况中,我们遇到的是数据,想处理的也是数据。一个 m × n m\times n m×n矩阵包含的信息是一组数据,比如 n n n个样本,每个样本又有 m m m个维度的值。它不是一个方阵,也没有特征值和特征向量。我们能够用特征值对这个矩阵作什么处理呢?
虽然我们得到的数据矩阵 A m × n A_{m\times n} Am×n没有特征值和特征向量,但是 A A T AA^T AAT却是一个 m × m m\times m m×m的方阵,并且是一个对称方阵。矩阵 A A T AA^T AAT是有特征值的, { e 1 , e 2 , . . . , e m } \{e_1,e_2,…,e_m\} {
e1,e2,...,em}。并且对称矩阵还有一个很重要的性质,对称矩阵的特征值两两正交, e i T e j = 0 , i ≠ j e_i^T e_j = 0, i\neq j eiTej=0,i̸=j。
证明:
λ i e i T ⋅ e j = ( λ i e i ) T e j = ( A A T e i ) T e j = e i T A A T e j = e i T λ j e j λ i e i ⋅ e j = λ j e i ⋅ e j \lambda_ie_i^T \cdot e_j=(\lambda_ie_i)^Te_j \\ =(AA^Te_i)^Te_j \\ =e_i^TAA^Te_j \\ =e_i^T\lambda_j e_j \\ \lambda_i e_i \cdot e_j = \lambda_j e_i \cdot e_j λieiT⋅ej=(λiei)Tej=(AATei)Tej=eiTAATej=eiTλjejλiei⋅ej=λjei⋅ej
如果特征值 λ \lambda λ 不相等的话,那么 e i T e j = 0 e_i^T e_j = 0 eiTej=0,特征向量 e i , e j e_i,e_j ei,ej 就是正交。
假设矩阵 E = { e 1 , e 2 , . . . , e m } E=\{ e_1,e_2,…,e_m \} E={
e1,e2,...,em},它是列由 A A T AA^T AAT 的特征向量构成的一个矩阵,那么有 A A T E = { λ 1 e 1 , λ 2 e 2 , . . . , λ m e m } AA^TE=\{ \lambda_1 e_1,\lambda_2 e_2,…,\lambda_m e_m\} AATE={
λ1e1,λ2e2,...,λmem}。假设 D D D是一个对称矩阵,
D = [ λ 1 0 ⋯ 0 0 λ 2 ⋯ 0 ⋮ ⋮ ⋱ 0 0 0 0 λ m ] D= \left[ \begin{matrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & 0 \\ 0 & 0 & 0 & \lambda_m \end{matrix} \right] D=⎣⎢⎢⎢⎡λ10⋮00λ2⋮0⋯⋯⋱0000λm⎦⎥⎥⎥⎤
E D = { λ 1 e 1 , λ 2 e 2 , . . . , λ m e m } ED=\{\lambda_1 e_1,\lambda_2 e_2,…,\lambda_m e_m\} ED={
λ1e1,λ2e2,...,λmem}。所以 A A T E = E D , A A T = E D E − 1 AA^TE=ED,AA^T = EDE^{-1} AATE=ED,AAT=EDE−1。我们知道特征值 { e 1 , e 2 , . . . , e m } \{ e_1,e_2,…,e_m \} {
e1,e2,...,em}两两正交,因而 E E E是一个正交矩阵。正交矩阵有一个性质, E − 1 = E T E^{-1}=E^T E−1=ET。
证明:让我们来看下 E T E E^TE ETE 的第 i j t h ij^{th} ijth 个元素, ( E T E ) i j = e i T e j (E^TE)_{ij}=e_i^Te_j (ETE)ij=eiTej。由于正交矩阵的列两两正交,那么 e i T e j = 0 , i ≠ j e_i^T e_j = 0, i \neq j eiTej=0,i̸=j, e i T e i = 1 e_i^T e_i = 1 eiTei=1(因为 e i e_i ei是单位向量),所以有
E T E = [ e 1 T e 1 0 ⋯ 0 0 e 2 T e 2 ⋯ 0 ⋮ ⋮ ⋱ 0 0 0 0 e m T e m ] E^TE= \left[ \begin{matrix} \ e_1^Te_1 & 0 & \cdots & 0 \\ 0 & e_2^Te_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & 0 \\ 0 & 0 & 0 & e_m^Te_m \end{matrix} \right] ETE=⎣⎢⎢⎢⎡ e1Te10⋮00e2Te2⋮0⋯⋯⋱0000emTem⎦⎥⎥⎥⎤
所以, E T E = E − 1 E = I E^TE=E^{-1}E=I ETE=E−1E=I,即 E T = E − 1 E^T=E^{-1} ET=E−1。
于是,对于一个对称矩阵 M M M,我们可以将其表示为: M = E D E T M=EDE^T M=EDET,其中, E E E是一个正交矩阵,列向量是矩阵 M M M 的特征向量; D D D是一个对角矩阵,对角线上的值是矩阵 M M M 的特征值。
这个性质很巧,正式我们在PCA里面用到的矩阵的斜对角定理。
有了这样的特征矩阵,我们可以将 E E E看作一个坐标系,这个坐标系有一个很好的性质,就是和我们经常看见的 x y xy xy 坐标系一样,它的各个坐标系之间相互垂直。
我们最想做的事情是,对数据 A m × n A_{m\times n} Am×n进行转换,转换后它各个维度之间相互独立,相关性为0,这样可以有助于我们更清晰的分析各个维度。矩阵 A A T AA^T AAT 的特征向量构成的坐标系 E E E,正好就有就有让原数据 A A A转化后,各个维度之间相互独立的这个神奇的特点。
将原数据 A A A转换到该坐标系上, E T A E^TA ETA。我们再来计算一下转换后矩阵的协方差系数,发现矩阵 E T A E^TA ETA各个坐标系之间的数据相互独立,即 E T A ( E T A ) T = E T A A T E = D E^TA (E^TA)^T=E^TAA^TE=D ETA(ETA)T=ETAATE=D, D D D是一个对角矩阵,就是说转化后的矩阵 E T A E^TA ETA,各行之间的数据相关性为0。这就是我们在PCA详解里面说的主要思想,这里 E E E 中的每一个特征向量,表示一个“主”成份。
由于这次讲的概念比较简单,我贴了两个证明过程,增加一点内容,希望能够帮助大家理解。同样,有问题欢迎大家提出。
至此,我的PCA,SVD,特征值三部曲全部完成。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23167.html