国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

用Python實(shí)現(xiàn)協(xié)同過濾的教程

2020-02-23 00:36:51
字體:
供稿:網(wǎng)友

協(xié)同過濾

在 用戶 —— 物品(user - item)的數(shù)據(jù)關(guān)系下很容易收集到一些偏好信息(preference),比如評(píng)分。利用這些分散的偏好信息,基于其背后可能存在的關(guān)聯(lián)性,來為用戶推薦物品的方法,便是協(xié)同過濾,或稱協(xié)作型過濾(collaborative filtering)。

這種過濾算法的有效性基礎(chǔ)在于:

    用戶的偏好具有相似性,即用戶是可分類的。這種分類的特征越明顯,推薦的準(zhǔn)確率就越高
    物品之間是存在關(guān)系的,即偏好某一物品的任何人,都很可能也同時(shí)偏好另一件物品

不同環(huán)境下這兩種理論的有效性也不同,應(yīng)用時(shí)需做相應(yīng)調(diào)整。如豆瓣上的文藝作品,用戶對(duì)其的偏好程度與用戶自身的品位關(guān)聯(lián)性較強(qiáng);而對(duì)于電子商務(wù)網(wǎng)站來說,商品之間的內(nèi)在聯(lián)系對(duì)用戶的購買行為影響更為顯著。當(dāng)用在推薦上,這兩種方向也被稱為基于用戶的和基于物品的。本文內(nèi)容為基于用戶的。
影評(píng)推薦實(shí)例

本文主要內(nèi)容為基于用戶偏好的相似性進(jìn)行物品推薦,使用的數(shù)據(jù)集為 GroupLens Research 采集的一組從 20 世紀(jì) 90 年代末到 21 世紀(jì)初由 MovieLens 用戶提供的電影評(píng)分?jǐn)?shù)據(jù)。數(shù)據(jù)中包含了約 6000 名用戶對(duì)約 4000 部電影的 100萬條評(píng)分,五分制。數(shù)據(jù)包可以從網(wǎng)上下載到,里面包含了三個(gè)數(shù)據(jù)表——users、movies、ratings。因?yàn)楸疚牡闹黝}是基于用戶偏好的,所以只使用 ratings 這一個(gè)文件。另兩個(gè)文件里分別包含用戶和電影的元信息。

本文使用的數(shù)據(jù)分析包為 pandas,環(huán)境為 IPython,因此其實(shí)還默認(rèn)攜帶了 Numpy 和 matplotlib。下面代碼中的提示符看起來不是 IPython 環(huán)境是因?yàn)?Idle 的格式發(fā)在博客上更好看一些。
數(shù)據(jù)規(guī)整

首先將評(píng)分?jǐn)?shù)據(jù)從 ratings.dat 中讀出到一個(gè) DataFrame 里:

>>> import pandas as pd>>> from pandas import Series,DataFrame>>> rnames = ['user_id','movie_id','rating','timestamp']>>> ratings = pd.read_table(r'ratings.dat',sep='::',header=None,names=rnames)>>> ratings[:3] user_id movie_id rating timestamp0  1  1193  5 9783007601  1  661  3 9783021092  1  914  3 978301968 [3 rows x 4 columns]

ratings 表中對(duì)我們有用的僅是 user_id、movie_id 和 rating 這三列,因此我們將這三列取出,放到一個(gè)以 user 為行,movie 為列,rating 為值的表 data 里面。(其實(shí)將 user 與 movie 的行列關(guān)系對(duì)調(diào)是更加科學(xué)的方法,但因?yàn)橹嘏芤槐樘闊┝耍@里就沒改。)
 

>>> data = ratings.pivot(index='user_id',columns='movie_id',values='rating')>>> data[:5]movie_id 1 2 3 4 5 6 user_id                  1   5 NaN NaN NaN NaN NaN ...2  NaN NaN NaN NaN NaN NaN ...3  NaN NaN NaN NaN NaN NaN ...4  NaN NaN NaN NaN NaN NaN ...5  NaN NaN NaN NaN NaN 2 ...            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 澄江县| 城口县| 安西县| 武强县| 陇西县| 瓦房店市| 苏州市| 铜山县| 南皮县| 台南市| 乐清市| 聊城市| 凌云县| 内江市| 汾西县| 中阳县| 彭阳县| 松潘县| 长沙市| 当阳市| 象山县| 广汉市| 正阳县| 房山区| 鱼台县| 鲁山县| 通辽市| 南部县| 南溪县| 稻城县| 务川| 和林格尔县| 南通市| 喀喇沁旗| 舒兰市| 新晃| 龙岩市| 长治县| 福清市| 贡嘎县| 扎鲁特旗|