亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2019-07-08 06:46:17張玉葉
        計(jì)算機(jī)時(shí)代 2019年6期
        關(guān)鍵詞:協(xié)同過(guò)濾推薦系統(tǒng)大數(shù)據(jù)

        張玉葉

        摘? 要: 大數(shù)據(jù)時(shí)代的推薦系統(tǒng)可以幫助用戶從海量信息中高效地獲取自己的潛在需求,是大數(shù)據(jù)在互聯(lián)網(wǎng)領(lǐng)域的典型應(yīng)用。文章介紹了利用Python語(yǔ)言實(shí)現(xiàn)的一個(gè)基于物品的協(xié)同過(guò)濾算法推薦系統(tǒng),給出了系統(tǒng)的基本架構(gòu)、系統(tǒng)的具體實(shí)現(xiàn)過(guò)程及相應(yīng)代碼。

        關(guān)鍵詞: 大數(shù)據(jù); 推薦系統(tǒng); 協(xié)同過(guò)濾; Python

        中圖分類號(hào):TP391.1? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A ? ?文章編號(hào):1006-8228(2019)06-59-04

        Abstract: The recommendation system in the big data era can help users to obtain their potential needs efficiently from the huge amount of information, which is a typical application of big data in the Internet field. A recommendation system based on object-based collaborative filtering algorithm and implemented with Python language is introduced in this paper, and the basic architecture of the system, the specific implementation process of the system, and the corresponding code are given.

        Key words: big data; recommendation system; collaborative filtering; Python

        0 引言

        隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)信息量也快速增長(zhǎng),為了更好地滿足用戶的個(gè)性化需求,各種推薦系統(tǒng)應(yīng)運(yùn)而生,它通過(guò)研究用戶的興趣偏好,自動(dòng)建立起用戶和信息之間的聯(lián)系,從而幫助用戶從海量信息中去發(fā)掘自己潛在的需求。推薦系統(tǒng)的關(guān)鍵是推薦算法,常用的推薦算法主要有專家推薦、基于統(tǒng)計(jì)的推薦、基于內(nèi)容的推薦和協(xié)同過(guò)濾推薦等。Python語(yǔ)言是一開源、免費(fèi)、跨平臺(tái)的解釋型高級(jí)動(dòng)態(tài)編程語(yǔ)言,其強(qiáng)大的功能及使用的簡(jiǎn)潔方便使其成為互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)的首選語(yǔ)言。本文利用Python語(yǔ)言實(shí)現(xiàn)了一個(gè)基于物品的協(xié)同過(guò)濾算法的推薦系統(tǒng)。

        1 推薦系統(tǒng)

        推薦系統(tǒng)是建立在海量數(shù)據(jù)挖掘基礎(chǔ)上的,通過(guò)分析用戶的歷史數(shù)據(jù)來(lái)了解用戶的需求和興趣,從而將用戶感興趣的信息、物品等主動(dòng)推薦給用戶,其本質(zhì)是建立用戶與物品之間的聯(lián)系。一個(gè)完整的推薦系統(tǒng)通常包含三個(gè)模塊:用戶建模模塊、推薦對(duì)象建模模塊和推薦算法模塊。推薦系統(tǒng)首先對(duì)用戶建模,根據(jù)用戶的行為數(shù)據(jù)和屬性數(shù)據(jù)來(lái)分析用戶的興趣和需求,同時(shí)也對(duì)推薦對(duì)象進(jìn)行建模。接著,基于用戶特征和物品對(duì)象特征,采用推薦算法計(jì)算得到用戶可能感興趣的物品,然后根據(jù)推薦場(chǎng)景對(duì)推薦結(jié)果進(jìn)行一定的推薦和調(diào)整,最終將推薦結(jié)果展示給用戶,其基本架構(gòu)如圖1所示[1]。

        2 協(xié)同過(guò)濾算法

        協(xié)同過(guò)濾算法分為基于用戶的協(xié)同過(guò)濾算法和基于物品的協(xié)同過(guò)濾算法[1]。

        基于用戶的協(xié)同過(guò)濾算法(簡(jiǎn)稱UserCF),通過(guò)不同用戶對(duì)物品的評(píng)分來(lái)評(píng)測(cè)用戶之間的相似性,基于用戶之間的相似性做出推薦。簡(jiǎn)單來(lái)講就是:給用戶推薦和他興趣相似的其他用戶喜歡的物品。

        基于物品的協(xié)同過(guò)濾算法(簡(jiǎn)稱ItemCF),通過(guò)用戶對(duì)不同物品的評(píng)分來(lái)評(píng)測(cè)物品之間的相似性,基于物品之間的相似性做出推薦。簡(jiǎn)單來(lái)講就是:給用戶推薦和他之前喜歡的物品相似的物品。

        UserCF算法和ItemCF算法思想類似,其實(shí)現(xiàn)過(guò)程也基本類似,唯一不同的是一個(gè)是計(jì)算用戶相似度,一個(gè)是計(jì)算物品相似度。

        UserCF算法和ItemCF最主要的區(qū)別在于:UserCF推薦的是那些和目標(biāo)用戶有共同興趣愛好的其他用戶所喜歡的物品,ItemCF算法則推薦那些和目標(biāo)用戶之前喜歡的物品類似的其他物品。因此,UserCF算法的推薦更偏向社會(huì)化,適合應(yīng)用于新聞推薦、微博話題推薦等應(yīng)用場(chǎng)景;而ItemCF算法的推薦則更偏向于個(gè)性化,適合應(yīng)用于電子商務(wù)、電影、圖書等應(yīng)用場(chǎng)景。

        3 推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        3.1 推薦算法

        本推薦系統(tǒng)以一電影推薦系統(tǒng)為例,因此采用基于物品的協(xié)同過(guò)濾算法(簡(jiǎn)稱ItemCF)?;谖锲返膮f(xié)同過(guò)濾算法是給目標(biāo)用戶推薦那些和他們之前喜歡的物品相似的物品。此算法并不利用物品的內(nèi)容屬性計(jì)算物品之間的相似度,而主要通過(guò)分析用戶的行為記錄來(lái)計(jì)算物品之間的相似度。該算法基于的假設(shè)是:物品I1和物品I2具有很大的相似度,是因?yàn)橄矚g物品I1的用戶大多也喜歡物品I2。ItemCF算法主要包括兩步。

        step1:計(jì)算物品之間的相似度

        計(jì)算相似度的算法有很多,如泊松相關(guān)系數(shù)、余弦相似度等,在此可直接利用同現(xiàn)矩陣[2,3]進(jìn)行計(jì)算。

        設(shè)有三個(gè)用戶u1、u2、u3和四件物品I1、I2、I3、I4,每個(gè)用戶喜歡的物品列表如圖2中的(a)所示。

        對(duì)每個(gè)用戶u喜歡的物品列表都建立一個(gè)物品同現(xiàn)矩陣Mu,如用戶u1喜歡物品I1和I3,則其物品同現(xiàn)矩陣中Mu1[I1][I3]和Mu1[I3][I1]的值為1,依次類推,由用戶喜歡的物品列表可得到每個(gè)用戶的物品同現(xiàn)矩陣Mu,如圖2中的(b)所示。然后將所有用戶的物品同現(xiàn)矩陣相加得到最終的所有用戶物品同現(xiàn)矩陣M,如圖2中的(c)所示。

        根據(jù)物品的同現(xiàn)矩陣和用戶的歷史行為,來(lái)求解推薦評(píng)分,然后根據(jù)推薦評(píng)分給用戶生成推薦列表。推薦評(píng)分=物品同現(xiàn)矩陣*用戶評(píng)分向量[4]。

        3.2 數(shù)據(jù)準(zhǔn)備

        在此以MovieLens(http://grouplens.org/datasets/movielens)作為本推薦系統(tǒng)中的實(shí)驗(yàn)數(shù)據(jù)。MovieLens是GroupLens Research實(shí)驗(yàn)室的一個(gè)非商業(yè)性質(zhì)、以研究為目的的實(shí)驗(yàn)性項(xiàng)目,采集了一組從20世紀(jì)90年代末到21世紀(jì)初的電影評(píng)分?jǐn)?shù)據(jù),包含大小不同的數(shù)據(jù)集,每個(gè)數(shù)據(jù)集中包括電影信息數(shù)據(jù)及電影評(píng)分記錄等。

        本系統(tǒng)采用MovieLens 1M數(shù)據(jù)集。該數(shù)據(jù)集中存放電影評(píng)分記錄的文件是“ratings.csv”,其數(shù)據(jù)格式如圖3所示,每一行用逗號(hào)分隔的四個(gè)數(shù)據(jù)分別表示用戶ID、電影ID、評(píng)分和評(píng)分時(shí)間戳,本推薦系統(tǒng)中只使用前三個(gè)數(shù)據(jù)元素。

        數(shù)據(jù)集中存放電影信息數(shù)據(jù)的文件是“movies.csv”,其數(shù)據(jù)格式如圖4所示,系統(tǒng)中主要使用前兩個(gè)數(shù)據(jù):電影ID和電影名稱(年份)。

        基于此數(shù)據(jù)集,如何通過(guò)已知的用戶評(píng)分記錄來(lái)預(yù)測(cè)未知的用戶評(píng)分,通過(guò)此評(píng)分來(lái)預(yù)測(cè)用戶是否會(huì)喜歡某部電影,從而決定是否給用戶推薦該電影。實(shí)現(xiàn)時(shí)采用Top-N推薦,即為目標(biāo)用戶提供一個(gè)長(zhǎng)度為N的推薦列表。

        3.3 數(shù)據(jù)處理

        首先,將所需數(shù)據(jù)讀入并進(jìn)行一定的預(yù)處理,將用戶評(píng)分記錄的前3項(xiàng)(用戶ID、電影ID、評(píng)分)和電影信息文件的前2項(xiàng)(電影ID和電影名稱)依次讀出并放到字典中。評(píng)分記錄信息用于求解電影相似度,電影信息用于推薦結(jié)果展示。其Python代碼[4-6]如下:

        3.4 建立同現(xiàn)矩陣

        同現(xiàn)矩陣是一稀疏矩陣,在此采用Python內(nèi)置序列字典來(lái)存放,可有效提高算法空間和時(shí)間效率。其實(shí)現(xiàn)代碼如下:

        3.5 計(jì)算推薦評(píng)分及推薦結(jié)果

        當(dāng)同現(xiàn)矩陣計(jì)算完成后,根據(jù)同現(xiàn)矩陣和用戶評(píng)分來(lái)計(jì)算用戶對(duì)未觀看過(guò)的相似電影的推薦評(píng)分(也即興趣度),根據(jù)推薦評(píng)分高低來(lái)針對(duì)用戶進(jìn)行電影推薦。其實(shí)現(xiàn)代碼如下:

        3.6 輸出推薦結(jié)果

        根據(jù)需要來(lái)輸出某個(gè)用戶的Top-N推薦結(jié)果,其代碼如下:

        調(diào)用主函數(shù)main("ratings.csv","movies.csv","2",10)對(duì)用戶2,為其推薦10部未曾看過(guò)的電影,得到的推薦結(jié)果如圖5所示。

        4 結(jié)束語(yǔ)

        推薦系統(tǒng)可幫助用戶從海量信息中高效地獲取自己潛在需求,是大數(shù)據(jù)在互聯(lián)網(wǎng)領(lǐng)域的典型應(yīng)用,通過(guò)分析用戶的歷史記錄來(lái)了解用戶的喜好,從而主動(dòng)為用戶推薦其感興趣的信息,滿足用戶的個(gè)性化需求。本文利用Python語(yǔ)言實(shí)現(xiàn)的基于物品的協(xié)同過(guò)濾算法的電影推薦系統(tǒng)具有普適性,在該系統(tǒng)基礎(chǔ)上稍加修改,就可應(yīng)用于音樂推薦系統(tǒng)、圖書推薦系統(tǒng)、商品推薦系統(tǒng)等,具有廣闊的應(yīng)用前景。

        參考文獻(xiàn)(References):

        [1] [美]查魯.C.阿加沃爾.推薦系統(tǒng):原理與實(shí)踐[M].機(jī)械工業(yè)出版社,2018.

        [2] 項(xiàng)亮.推薦系統(tǒng)實(shí)踐[M].人民郵電出版社,2012.

        [3] 林子雨.大數(shù)據(jù)技術(shù)原理與應(yīng)用[M].人民郵電出版社,2017.

        [4] 王建芳.機(jī)器學(xué)習(xí)算法實(shí)踐[M].清華大學(xué)出版社,2018.

        [5] 黑馬程序員.Python實(shí)戰(zhàn)編程[M].中國(guó)鐵道出版社,2018.

        [6] 董付國(guó).Python程序設(shè)計(jì)開發(fā)寶典[M].清華大學(xué)出版社,2017.

        猜你喜歡
        協(xié)同過(guò)濾推薦系統(tǒng)大數(shù)據(jù)
        基于用戶偏好的信任網(wǎng)絡(luò)隨機(jī)游走推薦模型
        基于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的協(xié)同過(guò)濾推薦算法設(shè)計(jì)與實(shí)現(xiàn)
        基于相似傳播和情景聚類的網(wǎng)絡(luò)協(xié)同過(guò)濾推薦算法研究
        基于個(gè)性化的協(xié)同過(guò)濾圖書推薦算法研究
        個(gè)性化推薦系統(tǒng)關(guān)鍵算法探討
        基于協(xié)同過(guò)濾算法的個(gè)性化圖書推薦系統(tǒng)研究
        混合推薦算法在電影推薦中的研究與評(píng)述
        淺談Mahout在個(gè)性化推薦系統(tǒng)中的應(yīng)用
        基于大數(shù)據(jù)背景下的智慧城市建設(shè)研究
        科技視界(2016年20期)2016-09-29 10:53:22
        在线观看精品国产福利片100| 欧美丰满少妇xxxx性| 熟女少妇内射日韩亚洲| 久久亚洲中文字幕精品二区 | 国产在线观看自拍av| 无码av一区二区大桥久未| 亚洲色欲色欲综合网站| 中文字幕国产欧美| 亚洲成人av一区二区麻豆蜜桃| 99久久婷婷国产精品综合| 国产播放隔着超薄丝袜进入| 亚洲欧美日本| 欧美手机在线视频| 一区二区三区观看视频在线| 精品嫩模福利一区二区蜜臀| 女人被男人爽到呻吟的视频| 国产肉体ⅹxxx137大胆| 456亚洲人成影视在线观看| 国产91精品丝袜美腿在线| 亚洲av香蕉一区二区三区av| 久久久久久久97| 98bb国产精品视频| 能看的网站中文字幕不卡av| 女同精品一区二区久久| 无码人妻精品一区二区在线视频 | 亚洲色成人WWW永久在线观看| 午夜婷婷国产麻豆精品| 夜夜爽夜夜叫夜夜高潮| 一本一道av无码中文字幕| 蜜桃在线播放免费一区二区三区 | 品色堂永远免费| 亚洲色图视频在线| 91国语对白在线观看| 蜜桃精品视频一二三区| 色先锋av影音先锋在线| 一本一本久久a久久精品| 成人无码无遮挡很H在线播放| 国产亚洲3p一区二区| 娜娜麻豆国产电影| 孩交精品xxxx视频视频| 精品欧洲AV无码一区二区免费|