第14章 利用SVD簡化數(shù)據(jù)(代碼)
-
SVD的應(yīng)用
圖像壓縮
噪聲濾波
模式識(shí)別
生物,物理,經(jīng)濟(jì)方面的一些統(tǒng)計(jì)模型的處理。
-
SVD優(yōu)缺點(diǎn)
優(yōu)點(diǎn):簡化數(shù)據(jù),去除噪聲,提高算法的結(jié)果
缺點(diǎn):數(shù)據(jù)的轉(zhuǎn)化可能難以理解
適用數(shù)據(jù)類型:數(shù)值型數(shù)據(jù)
-
推薦系統(tǒng)
推薦系統(tǒng)是利用電子商務(wù)網(wǎng)站向客戶提供商品信息和建議,幫助用戶決定應(yīng)該購買什么產(chǎn)品,模擬銷售人員幫助客戶完成購買過程。
-
案例
Amazon 會(huì)根據(jù)顧客的購買歷史向他們推薦物品
Netflix 會(huì)向其用戶推薦電影
新聞網(wǎng)站會(huì)對(duì)用戶推薦新聞?lì)l道
-
-
矩陣分解
-
三角分解法 (Triangular Factorization)
三角分解法是將原正方 (square) 矩陣分解成一個(gè)上三角形矩陣或是排列(permuted) 的上三角形矩陣和一個(gè) 下三角形矩陣,這樣的分解法又稱為LU分解法。它的用途主要在簡化一個(gè)大矩陣的行列式值的計(jì)算過程,求逆矩陣,和求解聯(lián)立方程組。不過要注意這種分解法所得到的上下三角形矩陣并非唯一,還可找到數(shù)個(gè)不同 的一對(duì)上下三角形矩陣,此兩三角形矩陣相乘也會(huì)得到原矩陣
-
QR 分解法 (QR Factorization)
QR分解法是將矩陣分解成一個(gè)正規(guī)正交矩陣與上三角形矩陣,所以稱為QR分解法,與此正規(guī)正交矩陣的通用符號(hào)Q有關(guān)
-
奇異值分解法 (Singular Value Decomposition)
奇異值分解 (singular value decomposition,SVD) 是另一種正交矩陣分解法;SVD是最可靠的分解法,但是它比QR 分解法要花上近十倍的計(jì)算時(shí)間。[U,S,V]=svd(A),其中U和V分別代表兩個(gè)正交矩陣,而S代表一對(duì)角矩陣。 和QR分解法相同, 原矩陣A不必為正方矩陣。使用SVD分解法的用途是解最小平方誤差法和數(shù)據(jù)壓縮
-
-
協(xié)同過濾引擎
協(xié)同過濾(collaborative filtering)是通過將用戶和其他用戶的數(shù)據(jù)進(jìn)行對(duì)比來實(shí)現(xiàn)推薦的算法
-
相似度計(jì)算
歐氏距離(euclidean metric)用Python實(shí)現(xiàn)相似度計(jì)算
import numpy as np def eulid_sim(colA, colB): return 1.0/(1.0 + np.linalg.norm(colA - colB)) -
相似度選擇
計(jì)算兩個(gè)電影之間的距離,是基于物品(item-based)的相似度,計(jì)算用戶的距離,是基于用戶(user-based)的相似度。到底使用哪種相似度,取決于用戶和物品的數(shù)量?;谖锲返南嗨贫葧?huì)隨著物品增加而增加,基于用戶的相似度會(huì)隨著用戶的增加而增加。如果用戶很多,則傾向于物品相似度計(jì)算方法。對(duì)于大部分推薦引擎而言,用戶數(shù)目往往大于物品數(shù)目,所以一般用物品相似度
-
小節(jié)
由于推薦引擎建好后既沒有預(yù)測的目標(biāo)值,也沒有用戶來調(diào)查他們對(duì)推薦的滿意程度,所以常常將某些已知的評(píng)分值去掉,然后對(duì)它們進(jìn)行預(yù)測,計(jì)算預(yù)測值和真實(shí)值之間的差異
通常用于推薦引擎評(píng)價(jià)的指標(biāo)是最小均方根誤差(Root Mean Squared Error,RMSE),先計(jì)算均方誤差的平均值,在取平方根。如果評(píng)級(jí)在1~5星級(jí),我們得到的RMSE為1,則和真實(shí)評(píng)價(jià)差了1個(gè)星級(jí)