PCA 和 SVD 的區別和聯絡

2021-10-07 04:19:19 字數 1463 閱讀 9515

兩者的基礎都是 求解特徵值、特徵向量

矩陣對向量的乘法,其實是矩陣對此向量的旋轉和拉伸。

如果矩陣對某個向量v只拉伸而不旋轉,那麼v就是該矩陣的eigenvector,拉伸比就是eigenvalue.

是對乙個維度的分析,比如對features分析,可以實現特徵降維。

a =u

σvta=u\sigma v^t

a=uσvt

sigma: 奇異值矩陣

是對兩個維度的分析。

比如矩陣的每行是產品,每列是使用者,矩陣元素是評分。

可以使用svd向使用者做產品推薦。

u:表徵的是輸入

v:表徵的是輸出

在train階段,可由a矩陣求出 u

uu, σ

\sigma

σ, v

vv 三個矩陣。

在test階段,對於新的a

aa, 可以使用已經計算好的u,sgima,計算 v=a

tuσ−

1v = a^t u \sigma^

v=atuς

−1。注意此處的u可以只取前k列,sigma值只取前k個。

比如:a: 10*5,每一列是乙個使用者 共5個使用者,每一行是產品 共10個產品,矩陣中數值是評分

u: 10*10,取前k列,=> (10,k)

sigma: 10*5,取前k個奇異值,=> (k,k)

v: 5*5

test:

ai: 10*1,是一列,即此使用者對10個產品的評分

vi = (1 * 10)(10 * k)(k * k) = (1 * k) ,可以理解為降維後的k個值 在座標系的位置

把vi 放到座標系裡,使用余弦相似度 度量,找到最近鄰(最近鄰的喜好類似)。然後用最近鄰的喜好產品向a使用者推薦。

比如在座標系裡 anna和beta很近,使用余弦距離,

beta對10個產品的評分:[9,9,5,1,6,9,9,…]

anna的是: [9,9,0,0,0,9,9,…]

那麼可以向anna推薦 第5個、第3個產品。

求v求u

求sigma

有降維、節約儲存空間的效果,

若a維度是: (10000行, 1000列)。消耗空間:10000 * 1000 = 10^7 = 10,000,000

取k=100時,

u: (10000, 100), 消耗:10^6

sigma: (100, 100), 消耗:10^4

vt: (100, 1000), 消耗: 10^5

消耗求和:1,110,000,是初始消耗的1/10左右。

注意:也可以使用pca對特徵降維,儲存空間也可以節省很多。

為推薦系統提供支援。

PCA和SVD區別和聯絡

pca principal component analysis 和svd singular value decomposition 是兩種常用的降維方法,在機器學習等領域有廣泛的應用。本文主要介紹這兩種方法之間的區別和聯絡。圖1.尋找主成分方向 pca的中文名叫做主成分分析,是降維和去噪的一種重要...

PCA與SVD的區別和聯絡

因為之前在做pca的時候,就直接用的svd求解,以為svd屬於pca的一部分,看了一下兩篇博文,有一定收穫。注意,左奇異向量和右奇異向量是針對資料x而言的 注意到協方差矩陣的特點 實對稱,且大小為 d d,d為資料x的維度。因此,當x每一行為乙個樣本,對應協方差矩陣為,x.t x,需要求左奇異向量u...

和 區別和聯絡, 和 區別和聯絡

和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...