1.特征值
- 特征向量
Ax=λx的几何意义:向量x通过矩阵A变换,只进行缩放,而不改变向量方向,缩放倍数即特征值。
- 对于n阶方阵,一定有n个特征值(包括复数),但非零特征值个数等于矩阵的秩。
2.方阵的分解
根据
Ax=λx, 对于n阶方阵:
A=UΣU−1 其中U为n个特征向量构成的矩阵,
Σ为特征值构成的对角阵。把U的n个特征向量标准化,满足
U−1=UT,得到
A=UΣ′UT
3. 奇异值分解
当A不是方阵时,需要奇异值分解了(Singular Value Decompasition, SVD), 分解得到
A=UΣVT, 其中U,V分别为m,n阶方阵,
Σ为m x n维矩阵,主对角线上非零元素为奇异值。分解过程如下:
对于矩阵
A=⎝⎛011110⎠⎞
- 求出
AAT、
ATA
AAT=(2112)、
AAT=⎝⎛110121011⎠⎞
- 对两者分别求特征值与特征向量,使得
ATAvi=λivi
AATui=λiui得到:
λi=3,λ2=1,v1=(1/2
1/2
)T,v2=(−1/2
1/2
)T
u1=(1/6
,2/6
,1/6
)T,u2=(1/2
,0,−1/2
)T
λ3=0,u3=(1/3
,−1/3
,1/3
)T
- 利用
Avi=σiui求奇异值,
σ1=3
,σ2=1.
- 得到分解结果:
A=UΣVT=⎝⎛1/6
2/6
1/6
1/2
0−1/2
1/3
−1/3
1/3
⎠⎞⎝⎛3
00010⎠⎞(1/2
−1/2
1/2
1/2
)
4.奇异值分解的作用:降维
Python中奇异值分解:
U,sigma,VT=linalg.svd(data)
分解后,得到sigma为奇异值从大到小排列的向量,通过
sum(sigma)2su(sigma[:k])2计算奇异值的能量占比,一般超过80%则表明保留了较多信息,可以用前k个分量还原出原矩阵的大部分信息,从而将原矩阵降维到m x k维。