做者:櫻花豬算法
摘要:框架
本文爲七月算法(julyedu.com)12月機器學習第九次次課在線筆記。推薦系統是機器學習的一個直觀而又有趣的系統,例如咱們在上淘寶時候會彈出推薦的商品,百度搜索是的搜索選項以及手機上偶爾會彈出的小廣告。有了推薦系統就可以根據用戶或者商品進行個性化的推薦,提升推薦的效率。本次課程內容更加貼合實際應用,用簡單的公式揭開了推薦系統神奇的面紗。機器學習
引言:函數
百度的搜索候選項、淘寶的推薦商品隨着機器學習和大數據的發展推薦的精準度也愈來愈高,而做爲用戶對於這種推薦也是又恨又愛。本次課就爲咱們分享了既神祕有常見的推薦系統。學習
本文首先介紹了推薦系統通常的框架,接下來將探討兩種有趣的算法,主成分分析PCA和奇異值分解,並經過實例展現這些理論知識如何運用的。其中,主成分分析PCA和奇異值分解在《矩陣論》中有很是詳細的講解,求解過程和理論證實比本次課程更加呈體系固然內容也更多。筆記更增強調兩種方法的意義而不過多糾結求法和記號表達。測試
預備知識:大數據
矩陣論;機率論;聚類;spa
建議補充:設計
矩陣分解、矩陣廣義逆3d
主成分分析PCA
奇異值分解SVD
1、推薦系統
一、類似度/距離的計算方法
與聚類類似,注意每種度量方式的意義、計算方法以及相互關聯
二、Jaccard類似度
記:R(u)是給用戶u做出的推薦列表,而T(u)是用戶在測試集上真正的行爲列表。
準確率:
Jaccard係數(二者結合):
Jaccard係數特色:各個特徵間是均一無權重的;
Jaccard用途:網頁去重/考試防做弊系統/論文抄襲檢查;
三、評價推薦系統的首要離線指標
經過將單個用戶的準確率(或召回率)作累加,即獲得整個推薦系統的準確率(或召回率),該離線指標經常用於比較各個推薦系統之間的優劣。
四、評價推薦系統的其餘指標
覆蓋率:
多樣性: 累加:
驚喜度(serendipity):滿意度/類似度
五、協同過濾算法
基於用戶行爲的數據而設計的推薦算法被稱爲協同過濾算法(Collaborative Filtering, CF)。(隨機遊走)
2、主成分分析PCA
一、主成分分析提出:
實際問題每每須要研究多個特徵,而這些特徵存在必定的相關性。數據量增長了問題的複雜性。咱們但願將多個特徵綜合爲少數幾個表明性特徵,他們既可以表明原始特徵的絕大多數信息,組合後的特徵又互不相關,下降相關性。所以咱們提出主成分分析。
二、主成分分析目的:
多個特徵綜合爲少數幾個表明性特徵,他們既可以表明原始特徵的絕大多數信息,組合後的特徵又互不相關,下降相關性。
三、求解思路:
對於n個特徵的m個樣本,將每 個樣本寫成行向量,獲得矩陣A:
尋找樣本的主方向u:將m個樣本值投影到某直線L上,獲得m個位於直線L上的點,計算m個投影點的方差。認爲方差最大的直線方向是主方向。
四、求解方法:
取投影直線L的延伸方向u,計算的值
(去均值化,指望E=0)
目標函數:
增長 u是單位向量的約束,創建拉格朗日方程,最後可將主成分分析化成求解等式:
u爲特徵向量,一個特徵向量對應一個主方向。
實際上,主成分分解就是求矩陣的特徵向量。實際操做中,咱們能夠去掉那些過小的特徵向量打到簡化計算的目的。
五、PCA的重要應用
OBB樹;特徵提取;數據壓縮(降維)
3、奇異值分解SVD
建議看書《矩陣論》矩陣分解部分
1、SVD的含義
奇異值分解能夠認爲是對稱方陣在任意矩陣上的推廣,將任意一個矩陣分解成:的形勢,(酉矩陣是在複試空間提的,在實數空間能夠簡單的認爲是對稱陣,可是不是全部矩陣均可以在實數域進行分解的)
假設A是一個m×n階實矩陣,則存在一個分解使得:
(一般將奇異值由大而小排列)
2、參數解釋
Σ對角線上的元素稱爲矩陣A的奇異值
U的第i列稱爲A的關於的左奇異向量
V的第i列稱爲A的關於的右奇異向量。
求解過程參考《矩陣論》
3、SVD與PCD的對比
矩陣對向量的乘法,對應於對該向量的旋轉、伸縮。若是對某向量只發生了伸縮而無旋轉變化,則該向量是該矩陣的特徵向量,伸縮比即爲特徵值。
PCA用來提取一個場的主要信息(即主成分份量) ,而SVD通常用來分析兩個場的相關關係。二者在具體的實現方法上也有不一樣,SVD是經過矩陣奇異值分解的方法分解兩個場的協方差矩陣的,而PCA是經過分解一個場的協方差矩陣。
PCA可用於特徵的壓縮、降維;固然也能去噪等;若是將矩陣轉置後再用PCA,至關於去除相關度過大的樣本數據——但不常見;
SVD可以對通常矩陣分解,並可用於個性化推薦等內容。