日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

Python基于协同过滤算法的电影推荐系统设计与实现

發(fā)布時(shí)間:2023/12/10 windows 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python基于协同过滤算法的电影推荐系统设计与实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

摘 要 隨著網(wǎng)絡(luò)化速度的不斷加快,龐大的信息量讓人們難以快速準(zhǔn)確地獲取自身需要的信息。如何從多種多樣的電影中獲取自己感興趣的部分,是值得關(guān)注的問題。推薦技術(shù)是運(yùn)用普遍的信息過濾技術(shù),它可以從大量的數(shù)據(jù)中過濾出用戶感興趣的信息,實(shí)現(xiàn)個(gè)性化推薦的功能。文中首先簡述了推薦系統(tǒng),然后分析了協(xié)同過濾算法,最后使用改進(jìn)的余弦相似度完成系統(tǒng)算法設(shè)計(jì)。本系統(tǒng)使用Python作為主要開發(fā)語言,Pyqt5框架實(shí)現(xiàn)系統(tǒng)的UI可視化,MySQL作為系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)開發(fā)了一款電影推薦系統(tǒng),實(shí)現(xiàn)了主動(dòng)為用戶推送信息的功能,為觀影者提供了便利,基本實(shí)現(xiàn)所需功能。
關(guān)鍵詞 協(xié)同過濾 ;相似度計(jì)算;電影推薦
Design and Implementation of Films Recommendation System Based on Collaborative Filtering Algorithm
Abstract As the speed of networking has developed constantly, people can’t find the information they need fleetly and accurately because of the enormous information. It is a concern that how to get some information you’re interested in form different kinds of movies. The recommendation technology is a widely used which can filter out the interests of the users from a large amount of information. It can realize personalized recommendation function. Firstly, the recommendation system is described briefly in this paper, then, we analyze the collaborative filtering algorithm, finally, the improved cosine similarity was used to complete the algorithm design. This system uses Python as the development language and uses Pyqt5 to realize the visualization of the system. Besides using MySQL as the background database to develop a movie recommendation system, which realizes the function of actively recommendation information for users, provides convenience for viewing, implements the basic function.
Keywords Collaborative Filtering; Similarity calculation; Film recommendation
前 言
互聯(lián)網(wǎng)的發(fā)展在某些程度上為人們提供了便利,但也帶來了不少問題,信息超載就是 備受關(guān)注的問題之一。人們希望通過娛樂的方式提高對(duì)生活品質(zhì)的追求,觀影成為了必選方式之一。當(dāng)用戶觀看影片目標(biāo)不明確時(shí),常常需要浪費(fèi)很多時(shí)間去搜索,才能找到自己喜愛的影片。推薦系統(tǒng)的出現(xiàn)讓這種問題變得不再如此棘手。
本文的個(gè)性化推薦系統(tǒng)分為顯示模塊、數(shù)據(jù)讀存模塊、數(shù)據(jù)預(yù)處理模塊、推薦計(jì)算模塊和查詢模塊[1]。模塊化的設(shè)計(jì)讓系統(tǒng)的耦合度大大降低,更有利于之后系統(tǒng)的部分功能更新。該系統(tǒng)依據(jù)用戶、電影、用戶對(duì)電影的評(píng)分以及用戶相似度數(shù)據(jù),進(jìn)行協(xié)同過濾算法處理,把電影推薦給用戶,體現(xiàn)了流行性和個(gè)性化的需求。個(gè)性化推薦技術(shù)在很多領(lǐng)域已有了廣泛地運(yùn)用,我們主要借鑒推薦系統(tǒng)這一特點(diǎn),實(shí)現(xiàn)在電影推薦這一領(lǐng)域的運(yùn)用。
本文的內(nèi)容結(jié)構(gòu)如下:
第一部分對(duì)本文的研究背景和意義作了介紹,第二部分簡述了系統(tǒng)開發(fā)所需關(guān)鍵技術(shù),第三部分?jǐn)⑹鐾扑]系統(tǒng)理論及系統(tǒng)設(shè)計(jì)算法-基于用戶的協(xié)同過濾,第四部分進(jìn)行了細(xì)致的系統(tǒng)分析,第五部分為系統(tǒng)的具體設(shè)計(jì),第六部分是系統(tǒng)的實(shí)現(xiàn),第七部分是總結(jié)。
1 研究背景及意義
1.1 研究背景
“互聯(lián)網(wǎng)+”的數(shù)據(jù)時(shí)代下,推薦系統(tǒng)被不斷應(yīng)用于各行各業(yè)已成為一種流行性趨勢(shì)。同時(shí),由于人們?cè)絹黻P(guān)注生活的質(zhì)感,大家開始更偏向于將觀看電影作為消遣娛樂的方式。多數(shù)人已經(jīng)將觀影作為娛樂生活中的一部分,觀看電影不僅可以放松心情,還是一種增長知識(shí)的方法。觀看不同類型的電影,可以讓人們體驗(yàn)別具一格的人情文化。但網(wǎng)絡(luò)上海量的電影信息已不能滿足人們對(duì)它的需求,人們更希望快速地發(fā)現(xiàn)符合自己喜好的影片,而不是盲目的查找,想要將節(jié)省出來的時(shí)間做更有意義的事情。推薦系統(tǒng)則符合了人們的這一要求,主動(dòng)向用戶推送可能會(huì)喜歡的電影。類似于高校圖書推薦系統(tǒng),根據(jù)讀者的閱讀行為向其主動(dòng)推薦書籍。
1.2 研究意義
上世紀(jì)90年代初興起了推進(jìn)系統(tǒng)的研究[2]。推薦系統(tǒng)涉及科學(xué)、管理、統(tǒng)計(jì)等多門學(xué)科的知識(shí),發(fā)展迅速,在信息搜索、網(wǎng)絡(luò)安全、數(shù)據(jù)挖掘、電網(wǎng)營銷等領(lǐng)域運(yùn)用廣泛[3]。本文開發(fā)的系統(tǒng)主要具有三個(gè)重要的意義:
(1)從應(yīng)用需求看[4]:推薦信息不需要用戶自己去查找,做到了真正意義上的主動(dòng)推送。把用戶忽略觀看的電影推薦出來,引起用戶的觀看欲。
(2)從技術(shù)實(shí)現(xiàn)看:該算法實(shí)現(xiàn)相對(duì)簡單,推薦結(jié)果較為合理。
(3)從用戶角度看:為喜愛觀影的用戶節(jié)省搜索時(shí)間,為用戶提供便利。
2 關(guān)鍵技術(shù)
2.1 開發(fā)語言
本文的開發(fā)語言是Python。它是一個(gè)強(qiáng)類型腳本語言,具有開源性,可進(jìn)行移植,簡潔性高,功能眾多[5]。它的一大特點(diǎn)是能夠和其他語言一起使用,擴(kuò)展性高,動(dòng)態(tài)特征明顯,交互性靈活。Python語言比較容易理解,代碼風(fēng)格簡潔,是初學(xué)者的優(yōu)先選擇。
2.2 計(jì)算平臺(tái)
本文使用 Spark作為平臺(tái),用于計(jì)算。它是一個(gè)數(shù)據(jù)框架,可進(jìn)行大量數(shù)據(jù)處理。速度上,能夠更加迅速的進(jìn)行數(shù)據(jù)分析,并支持多種類型的計(jì)算。通用性上,Spark可單獨(dú)完成分布式任務(wù)。此外,Spark支持多種任務(wù),具有高容錯(cuò)性,方便操作。
2.3 Python QT5
Python QT5是常用的框架,跨平臺(tái)性強(qiáng),具有擴(kuò)展性語言模塊。可用于GUI可視化操作頁面的制作。QT5可生成拓展和宏,允許組件編程。QT5功能完善且附帶文檔,可自主學(xué)習(xí)。
2.4 數(shù)據(jù)庫MySQL
MySQL擁有大規(guī)模數(shù)據(jù)中心,可以在不同的表中存儲(chǔ)數(shù)據(jù),靈活性高,可進(jìn)行數(shù)據(jù)庫搭建;SQL是一種查詢語言,具備源碼開放性,管理員可直接下載使用;MySQL體積小,造價(jià)低、性能好、靈活性強(qiáng)、安裝簡單[6];MySQL進(jìn)行集合函數(shù)操作,通過類庫形式調(diào)用,可與開發(fā)語言不同的平臺(tái)結(jié)合使用,跨平臺(tái)性好[7]。
2.5 Pycharm開發(fā)工具
本文的開發(fā)工具使用的是Pycharm。它是一種Python IDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具。
3 推薦系統(tǒng)基本理論
對(duì)網(wǎng)絡(luò)信息的需求是用戶們的初衷,推薦系統(tǒng)在被提出后,在大量用戶當(dāng)中漸漸流行起來。它主要包栝三部分:用戶,項(xiàng)目及推薦方法。在用戶未向系統(tǒng)提供任何如關(guān)鍵詞等具有參考價(jià)值的信息時(shí),系統(tǒng)能夠主動(dòng)記錄用戶進(jìn)行過的歷史操作并記錄,經(jīng)過預(yù)先設(shè)定的推薦方法進(jìn)行計(jì)算,把認(rèn)為對(duì)用戶有用的或者用戶自己感興趣的信息提交系統(tǒng),方便查看結(jié)果信息[8]。例如,用戶A預(yù)想在一個(gè)月內(nèi)購買某品牌運(yùn)動(dòng)鞋,關(guān)注了幾家鞋類店鋪,瀏覽了運(yùn)動(dòng)鞋的銷售情況,下次該用戶登陸賬戶時(shí),系統(tǒng)會(huì)推薦此類運(yùn)動(dòng)鞋供用戶參考并選擇。
推薦系統(tǒng)發(fā)展迅速,每一個(gè)階段都會(huì)根據(jù)發(fā)展需要進(jìn)行技術(shù)上的改進(jìn)。現(xiàn)階段,根據(jù)對(duì)數(shù)據(jù)的不同操作方式和系統(tǒng)實(shí)現(xiàn)形式的差異,主要基于四類推薦:1)人口統(tǒng)計(jì)學(xué);2)內(nèi)容;3)關(guān)聯(lián)規(guī)則;4)協(xié)同過濾[2]。本文我們運(yùn)用協(xié)同過濾算法,對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)。
3.1 協(xié)同過濾算法簡介
推薦系統(tǒng)在時(shí)代發(fā)展潮流中,有著不可估量的作用,為人們的生活、學(xué)習(xí)、工作等都提供了幫助。其中,協(xié)同過濾算法是使用較多,青睞度較高的。它的關(guān)鍵在于了解正在使用該系統(tǒng)的目標(biāo)用戶的特征,通常指的是相似用戶的屬性。屬性也就是說兩用戶看待同一個(gè)事物,有著相同或相似的喜愛程度。該算法使用K近鄰技術(shù)實(shí)現(xiàn),要求計(jì)算得到的相似用戶的數(shù)目為個(gè),這些用戶按類似程度的高低進(jìn)行排列[9]。
該算法實(shí)現(xiàn)大致分為四部分:一、要獲取用戶對(duì)系統(tǒng)設(shè)計(jì)主題項(xiàng)目的評(píng)分存儲(chǔ)數(shù)據(jù);二、進(jìn)行相似度的計(jì)算,按相似度的大小排列順序,選取個(gè)作為鄰居;三、預(yù)計(jì)算用戶的評(píng)分情況,這些被評(píng)分的項(xiàng)目一般指的是用戶未接觸過的事物,因?yàn)橛脩舨⒉灰欢P(guān)注過其相似用戶喜愛的東西;四、將第三步的計(jì)算結(jié)果進(jìn)行數(shù)值大小排序,從結(jié)果項(xiàng)目里選取個(gè),推薦給用戶。例如,用戶A對(duì)已觀看過的一部電影持8分好評(píng),用戶B對(duì)這部電影持7分好評(píng),則可以認(rèn)為二者具有一定程度上的雷同。用戶A可以從用戶B的觀影評(píng)分中,找到自己喜歡觀看的影片。
3.2 基于用戶的協(xié)同過濾算法
本文是利用一些具有相同或相似愛好的群體,為當(dāng)前主體用戶進(jìn)行推薦。以項(xiàng)目作為特征的協(xié)同過濾算法,是由數(shù)據(jù)庫中用戶對(duì)之前項(xiàng)目所評(píng)分?jǐn)?shù)預(yù)計(jì)可能青睞的項(xiàng)目,在用戶數(shù)明顯多于項(xiàng)目數(shù)的情況下,可以選擇使用[3]。由于本次系統(tǒng)設(shè)計(jì)主要針對(duì)少量用戶試運(yùn)行,所以這里我們先考慮采用以用戶屬性為特征的算法,只要用戶們對(duì)某些事物有相同或者類似的喜愛程度,則可以假設(shè)他們?cè)谄渌?xiàng)目上也有相似的興趣。以電影推薦為主題進(jìn)行設(shè)計(jì),推薦計(jì)算模塊需要調(diào)用該算法,該算法實(shí)現(xiàn)步驟圖如下:
(1)生成用戶-電影項(xiàng)目評(píng)分矩陣
表1 用戶電影評(píng)分矩陣
I1 I2 …… In
A1 i11 I12 …… I1n
A2 I21 I22 …… I2n
…… …… …… ……
A3 Im1 Im2 imn
A、、分別指代用戶、電影和用戶對(duì)電影的評(píng)分。個(gè)用戶,部電影,有個(gè)評(píng)分值。依據(jù)這些評(píng)分?jǐn)?shù)據(jù)得出一個(gè)評(píng)分矩陣。、和分別表示用戶A1、A2和An對(duì)數(shù)據(jù)庫內(nèi)電影項(xiàng)目的評(píng)分,、和分別表示一部電影獲得的所有評(píng)分。
(2)相似度計(jì)算
本文使用了修正的余弦相似度進(jìn)行系統(tǒng)的算法計(jì)算。這一方法盡量避免了用戶自身評(píng)價(jià)標(biāo)準(zhǔn)的差異性,例如,有人認(rèn)為評(píng)價(jià)8分以上就是高的,有的則認(rèn)為評(píng)價(jià)6分就是高的。此外,在設(shè)計(jì)電影評(píng)分環(huán)節(jié)時(shí),添加了“評(píng)論內(nèi)容”這一功能,規(guī)避了余弦相似度對(duì)評(píng)分不能及時(shí)作出回應(yīng)的問題[10]。該方法的計(jì)算公式如下:
其中,表示用戶,表示和均已評(píng)分過的項(xiàng)目,、分別表示、評(píng)價(jià)得分的平均值。
(3)尋找最近鄰居
系統(tǒng)內(nèi)有很多個(gè)用戶,要構(gòu)建主體用戶的最近鄰居,需知道該用戶和系統(tǒng)用戶之間的相似度數(shù)值大小,計(jì)算公式如(1),將這些對(duì)電影評(píng)分?jǐn)?shù)值放在一個(gè)集合中。再從該集合里選出數(shù)值相對(duì)較高的前個(gè)用戶,作為最近鄰居。
(4)預(yù)測(cè)評(píng)分及生成推薦結(jié)果
經(jīng)過計(jì)算找到主體用戶的類似群體后,該類似群體觀看的電影中存在主體用戶未參與打分的影片。如果主體用戶想要獲得推薦,需要從類似群體的觀看影片里選取[11]。全部推薦給主體用戶的方案不可取,因此需要從類似群體觀看的影片進(jìn)行預(yù)計(jì)算數(shù)值排名,向用戶推薦預(yù)測(cè)分?jǐn)?shù)靠前的電影項(xiàng)目。預(yù)測(cè)公式如下:
表示目標(biāo)用戶,表示系統(tǒng)用戶,表示未被打分的電影,表示對(duì)電影的平均評(píng)分,鄰居集合用表示,是鄰居集合里的一個(gè)用戶,引用和為了減少評(píng)分誤差。
4 系統(tǒng)分析
4.1可行性分析
(1)技術(shù)可行性
本文所使用的開發(fā)語言、開發(fā)環(huán)境和數(shù)據(jù)庫都采用普遍適用的技術(shù)手段,具有可行性。同時(shí),在滿足用戶需求的基礎(chǔ),代碼運(yùn)行更有效率。Mysql對(duì)于使用者來說是開源的,開發(fā)者可免費(fèi)使用,而且它能夠存儲(chǔ)大量的信息記錄,方便系統(tǒng)數(shù)據(jù)統(tǒng)計(jì)與設(shè)計(jì)。總之,達(dá)到了電影推薦系統(tǒng)設(shè)計(jì)的技術(shù)需求。
。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。

論文完整下載地址:》》》》

總結(jié)

以上是生活随笔為你收集整理的Python基于协同过滤算法的电影推荐系统设计与实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。