python實(shí)現(xiàn)基于用戶的協(xié)同過濾推薦算法和基于項(xiàng)目的協(xié)同過濾推薦算法
基于用戶的協(xié)同過濾推薦算法和基于項(xiàng)目的協(xié)同過濾推薦算法實(shí)現(xiàn)原理捡絮、公式熬芜、思路在前文中已有介紹,本次不再詳細(xì)描述福稳。本文主要是使用python語(yǔ)言實(shí)現(xiàn)推薦算法涎拉,python語(yǔ)言有很多工具模塊便于實(shí)現(xiàn)推薦算法,本文沒有大量使用已有的機(jī)器學(xué)習(xí)模塊的圆,更多的是使用python的基礎(chǔ)語(yǔ)法實(shí)現(xiàn)鼓拧,注釋詳細(xì),代碼閱讀性好越妈,便于學(xué)習(xí)季俩。
python版本3.8,movielens數(shù)據(jù)集梅掠,943個(gè)用戶酌住,1682部電影,8萬(wàn)條評(píng)分?jǐn)?shù)據(jù)阎抒。
1且叁、算法原理:構(gòu)建用戶項(xiàng)目評(píng)分矩陣祭示、計(jì)算用戶之間的相似度、得到目標(biāo)用戶的最近鄰居、預(yù)測(cè)評(píng)分质涛、推薦
2稠歉、讀取評(píng)分?jǐn)?shù)據(jù),構(gòu)建用戶-項(xiàng)目評(píng)分矩陣
3汇陆、用戶-項(xiàng)目評(píng)分矩陣模塊
這個(gè)模塊是保存用戶項(xiàng)目評(píng)分?jǐn)?shù)據(jù)怒炸,同時(shí)分析數(shù)據(jù),打印輸出分析結(jié)果
4毡代、計(jì)算用戶之間的相似度模塊
這個(gè)模塊是計(jì)算用戶之間的相似度阅羹,調(diào)用了余弦算法相似度模塊
5、得到目標(biāo)用戶的最近鄰居模塊
這個(gè)模塊是相似度排序教寂,找到前N個(gè)相似度最大的用戶捏鱼,也可以設(shè)置相似度閥值來(lái)判定最近鄰居
6、預(yù)測(cè)評(píng)分酪耕、推薦模塊
7导梆、測(cè)評(píng)指標(biāo)MAE模塊
8、運(yùn)行結(jié)果
1看尼、算法原理:構(gòu)建用戶項(xiàng)目評(píng)分矩陣、計(jì)算項(xiàng)目之間的相似度盟步、預(yù)測(cè)評(píng)分藏斩、推薦
2、計(jì)算項(xiàng)目之間的相似度模塊
3却盘、預(yù)測(cè)評(píng)分狰域、推薦模塊
4、運(yùn)行結(jié)果
![](https://upload-images.jianshu.io/upload_images/20436359-f8bc910e4908b7e8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)