R語言數據挖掘實踐——電影推薦系統綜合實例(一)

R語言數據挖掘實踐——電影推薦系統綜合實例(一)

我們嘗試將判別技術應用於實際,並使用MovieLens所提供的數據集為例展開。

MovieLens是一個推薦系統和虛擬社區網站,它的主要功能是運用協同過濾技術,以及所收集到的用戶對電影的喜好信息,來向用戶推薦電影。

具體來說,MovieLens可根據用戶對一部分電影的評分,預測出該用戶對其他電影的評分情況。當一個新用戶進入MovieLens,他需要對15部電影評分,評分範圍為1~5分,評分間隔為0.5分。這樣一來,當用戶查看某部電影時,MovieLens的推薦系統就可以根據之前獲取的該用戶電影偏好信息,即以往的評分來預測其對該電影的評分。 而推薦系統中最古老,同時也是最著名的算法就是K最近鄰(kNN)算法。

kNN與推薦

kNN的一般原理在之前已經說明,這裡為了自然地將此算法應用於推薦系統,我們結合推薦系統的基本思想對kNN原理進行更為具體通俗地闡述。

首先,kNN的基本思想簡單來說就是,要評價一個未知的東西U,就去尋找K個與U相似的已知的東西,看看這些已知的東西大多是屬於什麼水平、什麼程度、什麼類別,據此就可以估計出U的水平、程度、類別。就像我們平常所說的,要看出一個人的性格,就去看他周圍的朋友們都是怎樣的一些人,這與kNN的原理是一個道理。

而運用於推薦系統中,我們以電影為例,假如我們現在想要預測一位註冊名為A的用戶對電影M的評分,根據kNN的思想,我們就可以找出K個與A對其他電影給予相似評分,且對電影M已經進行評分的用戶,然後再用這K個用戶對M的評分來預測A對M的評分。這種找相似用戶的方法被稱之為基於用戶的kNN(User-based kNN)。

另外,我們也可以先找出K個與電影M相似的,並且A評價過的電影,然後再用這K部電影的評分來預測A對M的評分。這種找相似物品的方法叫作基於項目的kNN(Item-based kNN)。

MovieLens數據集說明

這裡給出一個數據集的下載地址:http://download.csdn.net/download/zhongwen7710/8510549,其中共有3個規模等級的數據集可供下載,分別為100k、1M、10M,其結構內容相同,僅樣本量不同。這裡我們選用100k的數據集,它包含1000位用戶對1700部電影的評分信息。我們對其中3個重要的數據文件愛你進行說明。

u.data:含有943位用戶對1682部電影總計10萬條評分,且每位用戶至少記錄了其對20部電影的評分。格式上,每條數據按照永固ID(user id)、電影ID(item id)、評分(rating)以及時間戳(timestamp)4個變量列示,樣本排序是無序的,其中我們將主要用到前三個變量信息。

u.item:記錄每部電影的信息,包括電影ID(item id)、電影名稱(movie title)、上映時間(release date)、視頻發佈時間(video release date)、網絡電影資料庫的網址(IMDb URL),以及是否為某類型電影的一系列二分變量,如是否為動作片(Action)、冒險片(Adventure)、動畫片(Animation)等,這是探究各電影間相似性的重要數據資料。

u.user:記錄每位用戶的基本信息,包括用戶ID(user id)、年齡(age)、性別(gender)、職業(occupation)以及郵編(zip code)。這是探究各用戶間相似性的重要信息來源。

相關推薦

推薦中...