国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

研究型案例在Python教學(xué)方法中應(yīng)用

2019-05-22 11:18:06高勇鋼
電腦知識(shí)與技術(shù) 2019年10期
關(guān)鍵詞:協(xié)同過(guò)濾推薦系統(tǒng)

高勇鋼

摘要:在高校開(kāi)設(shè)python課程時(shí),為了適應(yīng)大數(shù)據(jù)時(shí)代對(duì)數(shù)據(jù)分析的要求,采用研究型案例教學(xué)方法增強(qiáng)學(xué)生計(jì)算思維能力和解決復(fù)雜專(zhuān)業(yè)問(wèn)題的能力,并且初步掌握了研究具體問(wèn)題的基本方法。

關(guān)鍵詞:Python; 協(xié)同過(guò)濾; 推薦系統(tǒng);相似度計(jì)算;均方根誤差

中圖分類(lèi)號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2019)10-0097-03

開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

Application of Research Case in Python Teaching Method

GAO Yong-gang

(School of Computer and Information, Anhui Normal University, Wuhu 241003, China)

Abstract: In order to adapt to the requirements of data analysis in the era of big data, the research-based case teaching method is used to enhance students' ability to calculate thinking and solve complex professional problems, and to master the basic methods of researching specific problems.

Key words: Python; collaborative filtering; recommendation system; similarity computing; RMSE

1 引言

Python由于其簡(jiǎn)單、易學(xué)、面向?qū)ο?、可擴(kuò)展性、開(kāi)源等優(yōu)點(diǎn)成為最受歡迎的程序設(shè)計(jì)語(yǔ)言之一,眾多科學(xué)計(jì)算軟件包都提供了Python的調(diào)用接口,例如OpenCV、VTK、ITK。而Python專(zhuān)用的科學(xué)計(jì)算擴(kuò)展庫(kù)如SciPy、NumPy和matplotlib,它們分別為Python提供了數(shù)值運(yùn)算、快速數(shù)組處理以及繪圖功能。正是由于Python可擴(kuò)展性,使得Python有著極其豐富的庫(kù)進(jìn)行圖形處理、數(shù)學(xué)處理、文本處理、數(shù)據(jù)庫(kù)編程、網(wǎng)絡(luò)編程、Web編程多媒體應(yīng)用等。

現(xiàn)在國(guó)內(nèi)外眾多高校采用Python為非計(jì)算機(jī)專(zhuān)業(yè)與計(jì)算機(jī)專(zhuān)業(yè)教授程序設(shè)計(jì)課程。Python是一個(gè)生態(tài)圈,針對(duì)具體專(zhuān)業(yè)可適當(dāng)加強(qiáng)第三方庫(kù)知識(shí)學(xué)習(xí)與應(yīng)用。當(dāng)今已進(jìn)入大數(shù)據(jù)時(shí)代,數(shù)據(jù)分析作為一門(mén)前沿技術(shù),廣泛應(yīng)用于物聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)、云計(jì)算等戰(zhàn)略新興產(chǎn)業(yè)。Python由于其特點(diǎn)非常適合用于數(shù)據(jù)分析,因此計(jì)算機(jī)專(zhuān)業(yè)學(xué)生在學(xué)習(xí)Python時(shí)都應(yīng)關(guān)注其數(shù)據(jù)分析的應(yīng)用。工程教育專(zhuān)業(yè)認(rèn)證標(biāo)準(zhǔn)中要求學(xué)生具備能夠應(yīng)用信息技術(shù)對(duì)復(fù)雜工程問(wèn)題進(jìn)行預(yù)測(cè)、模擬和求解的能力,同時(shí)要在教學(xué)中貫徹計(jì)算思維的理念。為了上述目標(biāo),在Python教學(xué)中不能僅僅講解基礎(chǔ)知識(shí),需引入適當(dāng)難度的數(shù)據(jù)分析技術(shù)。本文通過(guò)引入一個(gè)改進(jìn)的協(xié)同推薦算法的研究型案例來(lái)促進(jìn)計(jì)算機(jī)專(zhuān)業(yè)學(xué)生學(xué)習(xí)Python效果。

2用研究型案例增強(qiáng)學(xué)生問(wèn)題求解能力和激發(fā)學(xué)生興趣

2.1案例簡(jiǎn)介

本案例是關(guān)于正流行的協(xié)同推薦算法。隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,由此產(chǎn)生的海量信息。為了能從海量信息中找出有價(jià)值的信息,信息過(guò)濾技術(shù)中的推薦技術(shù)是其中最重要的手段之一,因此推薦系統(tǒng)由此發(fā)展起來(lái)[1]。目前主要推薦方法有基于內(nèi)容推薦,有協(xié)同過(guò)濾推薦[2]等幾種方法。其中協(xié)同過(guò)濾推薦方法分為基于用戶(hù)[3,4]和基于項(xiàng)目?jī)煞N推薦方法[5],這兩種方法都要依賴(lài)于用戶(hù)-項(xiàng)目評(píng)分矩陣來(lái)給出項(xiàng)目推薦列表,但由于網(wǎng)絡(luò)產(chǎn)生的信息過(guò)載,使得用戶(hù)數(shù)和項(xiàng)目數(shù)增長(zhǎng)很快,隨之而來(lái)出現(xiàn)了數(shù)據(jù)稀疏[6]、冷啟動(dòng)[7]和精度上持續(xù)下降問(wèn)題??刹捎媒稻S法與缺失值填充[8]等方法能改善和緩解數(shù)據(jù)稀疏問(wèn)題。降維法主要包括主成分分析法和矩陣奇異值分解法,降維法計(jì)算量大,在實(shí)際應(yīng)用中操作性不高。缺失值填充法對(duì)缺失的用戶(hù)項(xiàng)目評(píng)分矩陣的項(xiàng)目用相關(guān)值填充,從而增加評(píng)價(jià)矩陣的密度。針對(duì)填充項(xiàng)的選擇,文中改進(jìn)的協(xié)同過(guò)濾算法采用了將屬于目標(biāo)用戶(hù)的近鄰用戶(hù)所有評(píng)分均值與對(duì)該評(píng)分項(xiàng)目的所有真實(shí)評(píng)分均值結(jié)合起來(lái)最終計(jì)算出目標(biāo)用戶(hù)對(duì)該項(xiàng)目的預(yù)估評(píng)分。改進(jìn)算法相比較其他幾種經(jīng)典算法在MovieLens 上的實(shí)驗(yàn)結(jié)果分析表明能進(jìn)一步提高推薦效果。

2.2協(xié)同過(guò)濾算法介紹

(1) 預(yù)測(cè)評(píng)分步驟

基于用戶(hù)協(xié)同過(guò)濾推薦方法可分為如下四個(gè)步驟:1) 選擇計(jì)算用戶(hù)之間相似度的方法; 2)根據(jù)用戶(hù)評(píng)分的數(shù)據(jù)集計(jì)算每個(gè)用戶(hù)與其他用戶(hù)的相似度;3)根據(jù)用戶(hù)之間的相似度大小排序來(lái)確定每個(gè)用戶(hù) K 個(gè)近鄰用戶(hù);4) 依據(jù)某用戶(hù)K個(gè)最近鄰對(duì)某項(xiàng)目評(píng)分來(lái)預(yù)測(cè)該用戶(hù)對(duì)該項(xiàng)目的評(píng)分。

(2)用戶(hù)相似度的常用計(jì)算方法

1) 歐幾里得距離

將兩個(gè)用戶(hù)對(duì)共同項(xiàng)目的評(píng)分分別組成一個(gè) n 維特征向量,如果直接求出這兩個(gè)向量的歐幾里得距離,則兩個(gè)用戶(hù)越相似則距離越小,但是算法要求兩用戶(hù)越相似則相似度數(shù)值越大,因此對(duì)初始?xì)W幾里得距離加1再求倒數(shù),這樣最終將用戶(hù)相似度距離控制在0到1范圍內(nèi),所用公式如(1)所示。

在已知某用戶(hù)的近鄰后,則該用戶(hù)對(duì)某項(xiàng)目的評(píng)分值由該用戶(hù)的K個(gè)近鄰對(duì)該項(xiàng)目的評(píng)分計(jì)算獲得。常用公式有(4)式和(5)式,兩式中N(u)表示用戶(hù)u的K個(gè)近鄰集合。從以上評(píng)分預(yù)測(cè)方法中可以看出預(yù)測(cè)用戶(hù)對(duì)某項(xiàng)目的評(píng)分值是由該用戶(hù)的近鄰對(duì)該項(xiàng)目的評(píng)分及近鄰的相似性決定的。由于項(xiàng)目評(píng)分?jǐn)?shù)據(jù)的稀疏性,一般某用戶(hù)的近鄰中會(huì)存在著許多的未評(píng)分項(xiàng)目,則對(duì)未評(píng)分項(xiàng)目通常用該近鄰用戶(hù)的評(píng)分均值填充。

2.3 協(xié)同過(guò)濾推薦算法的改進(jìn)

在測(cè)試協(xié)同過(guò)濾算法優(yōu)劣的實(shí)驗(yàn)中,常用的數(shù)據(jù)集是MovieLens數(shù)據(jù)集,在對(duì)某用戶(hù)對(duì)某電影分值預(yù)測(cè)時(shí),該用戶(hù)的近鄰中只有極少數(shù)對(duì)某電影有評(píng)分,絕大多數(shù)沒(méi)有評(píng)分。大多數(shù)用戶(hù)沒(méi)有時(shí)間看大多數(shù)電影并且給予評(píng)分,或者看了某部電影無(wú)論喜歡與否都不評(píng)分。對(duì)于沒(méi)有評(píng)論的近鄰用戶(hù)則用該用戶(hù)的評(píng)分均值來(lái)表示確實(shí)可以提高預(yù)測(cè)的準(zhǔn)確度,但沒(méi)有考慮到對(duì)這部電影真實(shí)評(píng)分的其他客戶(hù),而這些用戶(hù)對(duì)該電影的評(píng)分對(duì)最終該電影的預(yù)測(cè)是不可或缺的。

[Vu,i=Ru+v∈N(u)sim(u,v)×(xv,i-Rv)v∈N(u)|sim(u,v)|] (6)

采用改進(jìn)算法的評(píng)分預(yù)測(cè)的公式如(6)所示,xv,i表示如用戶(hù)v對(duì)i項(xiàng)目評(píng)分,如用戶(hù)v沒(méi)有對(duì)i項(xiàng)目評(píng)分則xv,i的值為數(shù)據(jù)集中所有對(duì)項(xiàng)目i的評(píng)分的均分。

用戶(hù)協(xié)同過(guò)濾推薦算法可分為如下四個(gè)步驟:1) 選擇修正余弦距離計(jì)算用戶(hù)之間相似度;2)根據(jù)用戶(hù)評(píng)分的數(shù)據(jù)集計(jì)算每個(gè)用戶(hù)與其他用戶(hù)的相似度; 3)根據(jù)用戶(hù)之間的相似度大小排序來(lái)確定每個(gè)用戶(hù) 的K 個(gè)近鄰用戶(hù);4) 根據(jù)某個(gè)用戶(hù)K個(gè)最近鄰的評(píng)分?jǐn)?shù)據(jù)用公式(6)計(jì)算預(yù)測(cè)評(píng)分。

2.4 改進(jìn)算法實(shí)驗(yàn)

(1) 選擇與采樣數(shù)據(jù)集

實(shí)驗(yàn)采用MovieLens數(shù)據(jù)集,該數(shù)據(jù)集由美國(guó)明尼蘇達(dá) GroupLens 研究組提供的。該數(shù)據(jù)集總共分為 3個(gè)不同大小的版本用來(lái)記錄了用戶(hù)對(duì)電影的評(píng)分。其中之一的小版本數(shù)據(jù)集它包含了943 名用戶(hù)對(duì) 1682部電影評(píng)分信息,共有100000 條評(píng)分信息,每名用戶(hù)至少有20 條以上的評(píng)分信息,用1 到5評(píng)分值代表用戶(hù)對(duì)所看電影的喜好程度。實(shí)驗(yàn)中采用MovieLens小版本數(shù)據(jù)集,將數(shù)據(jù)集分為訓(xùn)練集與測(cè)試集,其中訓(xùn)練集占總數(shù)據(jù)集的80%,測(cè)試集占20%。按照訓(xùn)練集與測(cè)試集的比例,隨機(jī)生成了6組實(shí)驗(yàn)數(shù)據(jù)。由于測(cè)試集中可能存在某用戶(hù)在訓(xùn)練集不存在,則將該用戶(hù)從測(cè)試集中刪除,這樣可提高預(yù)測(cè)評(píng)分的可靠性。實(shí)驗(yàn)中將對(duì)每一個(gè)算法用6組實(shí)驗(yàn)數(shù)據(jù)測(cè)試6次,取6次實(shí)驗(yàn)結(jié)果的均值。在評(píng)分預(yù)測(cè)中,計(jì)算預(yù)測(cè)準(zhǔn)確度般可以用均方根誤差( RMSE)和平均絕對(duì)誤差( MAE)來(lái)衡量,由于RMSE 采用了增加對(duì)預(yù)測(cè)不準(zhǔn)的用戶(hù)項(xiàng)目評(píng)分值 ,因此對(duì)推薦算法要求更嚴(yán)格,所以文中選用 RMSE 作為評(píng)測(cè)指標(biāo)。

(2) 實(shí)驗(yàn)結(jié)果及分析

實(shí)驗(yàn)根據(jù)三種常用不同相似度計(jì)算方法,以及基于均值還是雙重均值的不同共形成6種算法分別進(jìn)行實(shí)驗(yàn)。表1是采用歐幾里得距離計(jì)算用戶(hù)之間相似度,基于均值與雙重均值分組實(shí)驗(yàn)數(shù)據(jù)求均值后RMSE對(duì)比所示,圖1是表1的直方圖顯示;表2是采用皮爾遜距離計(jì)算用戶(hù)之間相似度,基于均值與雙重均值分組實(shí)驗(yàn)數(shù)據(jù)求均值后RMSE對(duì)比所示,圖2是表2的直方圖顯示;表3是采用修正余弦距離計(jì)算用戶(hù)之間相似度,基于均值與雙重均值分組實(shí)驗(yàn)數(shù)據(jù)求均值后RMSE對(duì)比所示,圖3是表3的直方圖顯示;表4是采用三種不同距離的雙重均值實(shí)驗(yàn)數(shù)據(jù)求均值后RMSE對(duì)比所示,圖4是表4的直方圖顯示。由實(shí)驗(yàn)數(shù)據(jù)可見(jiàn),無(wú)論采用何種距離計(jì)算用戶(hù)相似度,采用改進(jìn)算法都能使RMSE更小,且采用修正余弦的改進(jìn)算法優(yōu)于其他兩種距離改進(jìn)算法。

針對(duì)用戶(hù)評(píng)分?jǐn)?shù)據(jù)集中稀疏性,常用近鄰用戶(hù)評(píng)分均值填充,該方法確實(shí)可以有效提高推薦系統(tǒng)的RMSE。但實(shí)際某用戶(hù)對(duì)某個(gè)項(xiàng)目的預(yù)測(cè)評(píng)分結(jié)果不僅與近鄰用戶(hù)對(duì)該項(xiàng)目的評(píng)分有關(guān),也與近鄰用戶(hù)的評(píng)分均值有關(guān),并且還和該項(xiàng)目的所有用戶(hù)評(píng)分均值有關(guān)。因此文中采用基于這兩種均值的協(xié)同過(guò)濾推薦算法,實(shí)驗(yàn)表明可以進(jìn)一步提高RMSE。

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

推薦算法是常用的大數(shù)據(jù)分析,通過(guò)改進(jìn)的協(xié)同推薦算法案例,既可以讓學(xué)生了解常用的推薦算法,同時(shí)又能分析不同推薦算法優(yōu)點(diǎn)和缺點(diǎn),并提出一種改進(jìn)的推薦算法且通過(guò)實(shí)驗(yàn)證明更好,所有實(shí)驗(yàn)中涉及的程序都用Python實(shí)現(xiàn)。因此該案例可以增強(qiáng)學(xué)生用Python分析數(shù)據(jù)的能力,并且可以增強(qiáng)解決復(fù)雜工程能力和計(jì)算思維能力。

參考文獻(xiàn):

[1]許海玲,吳瀟,李曉東,等. 互聯(lián)網(wǎng)推薦系統(tǒng)比較研究[J].軟件學(xué)報(bào), 2009,20(2):350-362.

[2]Goldberg D, Nichols D, Oki B M, et al. Using Collaborative Filtering to Weave an Information Tapestry[J]. Communications of the ACM,1992,35(12):61-70.

[3] 馬婉貞,錢(qián)育蓉. 基于標(biāo)簽匹配的協(xié)同過(guò)濾推薦算法研究[J].計(jì)算機(jī)研究與發(fā)展,2017,27(7):25-28.

[4] 蘭艷,曹芳芳.面向電影推薦的時(shí)間加權(quán)協(xié)同過(guò)濾算法的研究[J].計(jì)算機(jī)科學(xué),2017,44(4):295-301.

[5]Deshpande M,Karypis G. Item-based top-n recommendation algorithms[J]. ACM Transactions on Information Systems, 2004,22(1):143-177.

[6] 云祥富.面向稀疏性數(shù)據(jù)的協(xié)同過(guò)濾推薦算法的研究[D]. 長(zhǎng)春:吉林大學(xué), 2017.

[7] 于洪, 李俊華. 一種解決新項(xiàng)目冷啟動(dòng)問(wèn)題的推薦算法[J]. 軟件學(xué)報(bào), 2015,26(6):1395-1408.

[8] 蔣宗禮, 王威, 陸晨. 基于均值預(yù)估的協(xié)同過(guò)濾推薦算法改進(jìn)[J]. 計(jì)算機(jī)研究與發(fā)展,2017,27(5):1-5.

【通聯(lián)編輯:王力】

猜你喜歡
協(xié)同過(guò)濾推薦系統(tǒng)
基于用戶(hù)偏好的信任網(wǎng)絡(luò)隨機(jī)游走推薦模型
基于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的協(xié)同過(guò)濾推薦算法設(shè)計(jì)與實(shí)現(xiàn)
基于相似傳播和情景聚類(lèi)的網(wǎng)絡(luò)協(xié)同過(guò)濾推薦算法研究
基于個(gè)性化的協(xié)同過(guò)濾圖書(shū)推薦算法研究
個(gè)性化推薦系統(tǒng)關(guān)鍵算法探討
基于協(xié)同過(guò)濾算法的個(gè)性化圖書(shū)推薦系統(tǒng)研究
混合推薦算法在電影推薦中的研究與評(píng)述
淺談Mahout在個(gè)性化推薦系統(tǒng)中的應(yīng)用
成安县| 维西| 临沂市| 台中市| 体育| 武隆县| 伊吾县| 华坪县| 抚顺市| 南昌市| 盐源县| 威海市| 久治县| 芜湖县| 临武县| 延长县| 红桥区| 满洲里市| 云霄县| 东山县| 吕梁市| 秀山| 嘉义县| 万源市| 南康市| 正镶白旗| 比如县| 定南县| 横山县| 卓资县| 汶川县| 德令哈市| 中牟县| 富蕴县| 塘沽区| 安徽省| 大关县| 措美县| 商丘市| 六安市| 龙游县|