電影推薦系統的建模

2021-06-22 08:02:16 字數 1734 閱讀 5994

11336241 

葉均明

一、概述

由movielens評分資料集作為訓練集(含943名使用者對1682部電影的評分),根據使用者資訊和過往打分進行電影推薦,即允許使用者對自己所看過的電影進行打分,並且根據使用者歷史的打分資訊,為使用者**他對其他未**的電影的打分,或**他對其他電影的評分分類,將**分值高的電影推薦給使用者,認為這些電影是使用者下一步感興趣的電影。

二、思路

整理movielens評分資料集,使其包括如下資訊:使用者id,使用者資訊,含年齡、職業(泛化成21種)等,電影id,電影特性(泛化成18類),以及使用者對產品的評分資訊rating。然後,對評分資料集進行了訓練集和測試集的劃分,劃分比例為80%的訓練集+20%的測試集,共有5組隨機劃分的結果,這5組劃分中的測試集是互相不重疊的,即交叉驗證的資料集。

訓練方法可以嘗試採用回歸或分類的思想(如果用回歸模型,根據使用者資訊和過往評分可以得到其他未**電影的具體分值並排序;如果用分類模型,只能對其他未**電影進行分值的分類,並在最高評分的一類電影中隨機抽取進行推薦)。

三、建模

先整理出我們需要的評分資料集

base=read.table("u1.base",header=t)

test=read.table("u1.test",header=t)

user=read.table("u.user",header=t)

item=read.table("u.item",header=t)

testing=na

d=nrow(base)

for(i in 1:d)

在訓練集上用adaboost演算法得到乙個分類器

library(rpart)

library(mlbench)

library(lattice)

library(ggplot2)

library(caret)

library(adabag)

model.boosting=boosting(rating~.,data=training)

四、測試

整理測試集資料

testing=na

d=nrow(test)

for(i in 1:d)

進行**並檢查分類器在測試集上的正確率

pre.boosting=predict(model.boosting,testing)

summary(pre.boosting)

五、附件說明

1)  u.item 電影類別,分為18類,0值表示不屬於,1值表示屬於

2)  u1.base 隨機抽取80%的評分資料用於訓練

3)  u1.test 隨機抽取20%的評分資料用於測試

4)  u.user 使用者資訊,包括使用者id、年齡和職業,

其中,各職業編號如下:

1 technician  2 writer   3 executive   4administrator

5 student     6 lawyer   7 educator 8scientist

9 entertainment   10programmer 11 librarian      12homemaker

13 artist         14engineer       15 healthcare     16marketing

17 salesman       18 other          19retired        20 none   

21 doctor

推薦系統 電影推薦系統(二)

als是交替最小二乘法的簡稱,是2008年以來,用的比較多的協同過濾演算法。它已經整合到spark的mllib庫中,使用起來比較方便。這裡可以想象一下,每個人的性格愛好可以認為是乙個抽象的模型,每個人的模型都有自己的乙個特點。因此,每個人對於商品的評價都有自己的一套規律,als演算法就是可以通過這些...

推薦系統 電影推薦系統(一)

二 電影推薦思路總結 資料儲存部分 離線推薦部分 實時推薦部分 系統初始化部分 離線推薦部分 實時推薦部分 業務系統部分 使用者電影特徵提取時,必須要有對應的資料,電影表,使用者表,使用者評價表。通過als演算法對評價表進行計算,計算出電影的特徵矩陣。通過電影特徵的矩陣計算得出每個電影最相似的幾個電...

基於Spark的電影推薦系統(推薦系統 1)

行業背景 快速 apache spark以記憶體計算為核心 通用 一站式解決各個問題,adhoc sql查詢,流計算,資料探勘,圖計算 完整的生態圈 只要掌握spark,就能夠為大多數的企業的大資料應用場景提供明顯的加速 猜你喜歡 為代表的推薦系統,從吃穿住行等專案背景介紹 本專案是乙個基於apac...