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/21/2)T,v2=(−1/21/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/62/61/61/20−1/21/3−1/31/3⎠⎞⎝⎛300010⎠⎞(1/2−1/21/21/2)
4.奇異值分解的作用:降維
Python中奇異值分解:
U,sigma,VT=linalg.svd(data)
分解後,得到sigma爲奇異值從大到小排列的向量,通過sum(sigma)2su(sigma[:k])2計算奇異值的能量佔比,一般超過80%則表明保留了較多信息,可以用前k個分量還原出原矩陣的大部分信息,從而將原矩陣降維到m x k維。