Python推荐算法案例(1)——根据评分进行排序的电影推荐
生活随笔
收集整理的這篇文章主要介紹了
Python推荐算法案例(1)——根据评分进行排序的电影推荐
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? 本節通過一個電影推薦案例來介紹最簡單的推薦模型——基于評分進行排序。
? ? 就如同豆瓣電影網頁上的top10電影排行榜一樣,我們根據IMDB網站的數據建立了一個top10電影榜單。
?????操作步驟如下:
? ? (1)決定一個指標或分數,對電影進行評價;
? ? (2)計算每一部電影的分數;
? ? (3)根據分數對電影進行排序,輸出top10排行結果。
? ? 使用的數據鏈接:IMDB電影評分數據
? ? 電影最基本的一個評價指標是電影評分,但是直接使用電影評分存在一個問題,譬如,一個冷門的電影,只有10個觀眾評價了,平均分為9分,另外一個電影,有100,000人評分,且平均分為8.9分,那么能夠認為第一部電影比第二部電影評分高,并將它推薦給其他人嗎?顯然這樣是有問題的。
? ? 考慮到上面的問題,采用以下評分公式:
????
????其中,v是某電影參與評分的觀眾的個數,
????????? ? m是篩選的評分觀眾閾值,即,如果某個電影評分的個數低于閾值,則該電影將被忽略;
????????? ? R是該電影的評分評分;
????????? ? C是所有電影的平均分。
? ? m的取值可以根據自己的目的自由選取。在下面的模型中,采用90分位值,即只選取評論人數為前10%的電影進行分析。
? ? 根據以上說明,python模型代碼如下:
movies1=movies.loc[:,['movie_title','num_voted_users','imdb_score']] movies1.head() C=movies1['imdb_score'].mean() print(C) 6.442137616498111 m=movies1['num_voted_users'].quantile(0.9) print(m) 216562.0 q_movies1=movies1.copy().loc[movies1['num_voted_users']>m] q_movies1.shape (505, 3) def weighted_rating(x,m=m,C=C):v=x['num_voted_users']R=x['imdb_score']return (v/(v+m)*R)+(m/(m+v)*C) q_movies1['score']=q_movies1.apply(weighted_rating,axis=1) q_movies1=q_movies1.sort_values('score',ascending=False) q_movies1.head(10)
總結
以上是生活随笔為你收集整理的Python推荐算法案例(1)——根据评分进行排序的电影推荐的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何上传图片
- 下一篇: 数据库使用率对比【CSDN指数】