1. 程式人生 > >專注計算機體系結構

專注計算機體系結構

為什麼要降維?

找出規律,壓縮資料量。

(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

正確地選擇行/列。

構造中間矩陣。

消除冗餘的行/列。