專注計算機體系結構
為什麼要降維?
找出規律,壓縮資料量。
(1)特徵值與特徵向量
M矩陣,λ常數,e非零列向量
Me = λe (e為unit vector,第一個非零元素為正)
特徵向量是單位向量;特徵向量之間正交;特徵向量矩陣E的特點,E*E^T = E^T*E = I。
(2)PCA(主成分分析)
利用特徵向量進行降維。
原理:
將矩陣與一個正交單位向量矩陣相乘,意味著在歐式空間上的旋轉。
求MM^T或者M^T的特徵矩陣E,對高維資料進行旋轉。
原資料變成在新的座標上的投影。
新的座標上,第一維是主特徵向量指向的那個方向,能量最強。以後依次遞減。使降維成為可能。
(3)SVD(奇異值分解)
r是A的秩(Rank)
A[m*n] = U[m*r] ∑[r*r] V[n*r]^T
U:左奇異向量(Left singular vectors),單位正交矩陣。
∑:奇異值矩陣(Singular values),對角陣。
V:右奇異向量(Right Singular vectors),單位正交矩陣。
基於SVD的降維:降概念強度最低的那一維。∑矩陣中對角線的值最小。
誤差評估:Forbenius norm
實踐中:保持80-90%的能量。
與PCA的關係:∑是AA^T的特徵值對角陣;U是AA^T的特徵向量矩陣;V是A^T*A的特徵向量矩陣。
SVD的問題:結果難以解釋?為什麼那麼多維度?
U和V很Dense!佔空間多。
(4)CUR分解
SVD存在問題。With SVD, even if
M is sparse,
U and V
will be dense. Σ, being diagonal, will be sparse, but Σ is usually much smaller than U
and V , so its sparseness does not help.
M = CUR
正確地選擇行/列。
構造中間矩陣。
消除冗餘的行/列。