Python數(shù)據(jù)可視化(微課版) 課件 第10章 影評數(shù)據(jù)分析與電影推_第1頁
Python數(shù)據(jù)可視化(微課版) 課件 第10章 影評數(shù)據(jù)分析與電影推_第2頁
Python數(shù)據(jù)可視化(微課版) 課件 第10章 影評數(shù)據(jù)分析與電影推_第3頁
Python數(shù)據(jù)可視化(微課版) 課件 第10章 影評數(shù)據(jù)分析與電影推_第4頁
Python數(shù)據(jù)可視化(微課版) 課件 第10章 影評數(shù)據(jù)分析與電影推_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

主講人:AiPPT時間:20XX.XXPOWERPOINTDESIGN202XPowerPointDesign------------------影評數(shù)據(jù)分析與電影推薦Catalogue目錄工具選擇2.1.明確目標(biāo)與數(shù)據(jù)準(zhǔn)備電影推薦初步分析3.4.總結(jié)與展望5.--------------PowerPointDesign明確目標(biāo)與數(shù)據(jù)準(zhǔn)備01PARTPOWERPOINTDESIGN目標(biāo)明確性本案例目標(biāo)明確,旨在根據(jù)用戶對不同電影的評分情況實現(xiàn)新的電影推薦。階段性目標(biāo)包括“找出和某用戶有類似觀影愛好的用戶”、“找出和某一個電影有相似的觀眾群的電影”等。數(shù)據(jù)準(zhǔn)備是根據(jù)要實現(xiàn)的目標(biāo)要求,收集、積累、清洗和整理所需要的數(shù)據(jù)。在實際操作時,有時候明確目標(biāo)和數(shù)據(jù)準(zhǔn)備并沒有完全嚴(yán)格的時間界限。數(shù)據(jù)采集與處理在進行數(shù)據(jù)采集時,需要根據(jù)實際的業(yè)務(wù)環(huán)境來采用不同的方式,例如使用爬蟲、對接數(shù)據(jù)庫、使用接口等。本案例需要的是用戶的對電影的評分?jǐn)?shù)據(jù),所以可以使用爬蟲獲取豆瓣電影影評數(shù)據(jù)。獲取的數(shù)據(jù)有兩個文件:包含加密的用戶ID、電影ID、評分值的用戶評分文件ratings.csv和包含電影ID和電影名稱的電影信息文件movies.csv。本案例的數(shù)據(jù)較為簡單,所以基本上可以省去特征方面的復(fù)雜處理過程。分析目標(biāo)設(shè)定實際操作中,如果獲取的數(shù)據(jù)質(zhì)量無法保證,就需要對數(shù)據(jù)進行清洗,包括對數(shù)據(jù)格式的統(tǒng)一、缺失數(shù)據(jù)的補充等。在數(shù)據(jù)清洗完成后還需要對數(shù)據(jù)進行整理,例如根據(jù)業(yè)務(wù)邏輯進行分類、去除冗余數(shù)據(jù)等。而在數(shù)據(jù)整理完成之后需要選擇合適的特征,而且特征的選擇也會根據(jù)后續(xù)的分析進行變化。而關(guān)于特征的處理有一個專門的研究方向,就是特征工程,也是數(shù)據(jù)分析過程中很重要而且耗時的部分。數(shù)據(jù)清洗必要性本案例中,由于數(shù)據(jù)較為簡單,主要集中在用戶對電影的評分?jǐn)?shù)據(jù),因此在數(shù)據(jù)清洗和整理方面的工作相對較少。但仍然需要確保數(shù)據(jù)的準(zhǔn)確性和完整性,以便為后續(xù)的分析和推薦提供可靠的基礎(chǔ)。數(shù)據(jù)準(zhǔn)備總結(jié)數(shù)據(jù)清洗與整理--------------PowerPointDesign工具選擇02PARTPOWERPOINTDESIGN01Pandas(PythonDataAnalysisLibrary)是一個強大的分析結(jié)構(gòu)化數(shù)據(jù)的工具集,它的使用基礎(chǔ)是Numpy(提供高性能的矩陣運算),用于數(shù)據(jù)挖掘和數(shù)據(jù)分析,同時也提供數(shù)據(jù)清洗功能。Pandas的主要數(shù)據(jù)結(jié)構(gòu)是Series(一維數(shù)據(jù))與DataFrame(二維數(shù)據(jù)),這兩種數(shù)據(jù)結(jié)構(gòu)足以處理金融、統(tǒng)計、社會科學(xué)、工程等領(lǐng)域里的大多數(shù)數(shù)據(jù)。本案例中使用的是二維數(shù)據(jù),所以更多操作是DataFrame相關(guān)的。DataFrame是Pandas中的一個表格型的數(shù)據(jù)結(jié)構(gòu),包含有一組有序的列,每列可以是不同的值類型(如數(shù)值、字符串、布爾型等),DataFrame既有行索引也有列索引,可以被看作是由Series組成的字典。Pandas工具介紹02開發(fā)工具選擇比較適合嘗試性開發(fā)的工具JupyterNotebook。JupyterNotebook是一個交互式筆記本,支持運行40多種編程語言。JupyterNotebook的本質(zhì)是一個Web應(yīng)用程序,便于創(chuàng)建和共享文學(xué)化程序文檔,支持實時代碼,數(shù)學(xué)方程,可視化和markdown。由于其靈活交互的優(yōu)勢,所以很適合探索性質(zhì)的開發(fā)工作。其安裝和使用比較簡單,這里就不做詳細介紹,而是推薦使用很方便的使用方式,就是使用VSCode開發(fā)工具,可以直接支持Jupyter,不需要手動啟動服務(wù)。JupyterNotebook選擇數(shù)據(jù)分析工具使用Pandas可以輕松地處理大規(guī)模的結(jié)構(gòu)化數(shù)據(jù),進行數(shù)據(jù)的篩選、排序、統(tǒng)計等操作,為數(shù)據(jù)分析提供了強大的支持。而JupyterNotebook則提供了便捷的代碼編寫和執(zhí)行環(huán)境,支持實時的代碼調(diào)試和結(jié)果展示,使得整個數(shù)據(jù)分析過程更加直觀和高效。02工具使用優(yōu)勢選擇Pandas作為數(shù)據(jù)分析工具是因為其強大的數(shù)據(jù)處理能力和對結(jié)構(gòu)化數(shù)據(jù)的良好支持,能夠高效地完成數(shù)據(jù)的清洗、整理和分析工作。而選擇JupyterNotebook作為開發(fā)工具,則是因為其交互式的特點非常適合進行探索性的數(shù)據(jù)分析和模型構(gòu)建,能夠方便地展示分析過程和結(jié)果。01工具選擇合理性工具選擇總結(jié)--------------PowerPointDesign初步分析03PARTPOWERPOINTDESIGN用戶評分?jǐn)?shù)據(jù)結(jié)構(gòu)首先可以先使用pandas的head()函數(shù)來看一下rating的結(jié)構(gòu)。head是DataFrame的成員函數(shù),用于返回前n行數(shù)據(jù)。其中n是參數(shù),代表選擇的行數(shù),默認(rèn)是5。可以看到,用戶ID是經(jīng)過長度一致的字符串(實際是經(jīng)過MD5處理的字符串),影片ID是數(shù)字,所以在之后的分析過程中影片ID可能會被當(dāng)作數(shù)字來進行運算。如果想看一下一共有多少條數(shù)據(jù),可以查看rating.shape,輸出的(1048575,3)代表一共有將近105萬條數(shù)據(jù),3則是對應(yīng)的上面提到的3列。然后我們可以看一下用戶的評論情況,例如數(shù)據(jù)中一共有多少人參與評論,每個人評論的次數(shù)。由于ratings數(shù)據(jù)中每個用戶可以多部影片進行評分,所以可以按用戶進行分組,然后使用count()來統(tǒng)計數(shù)量。而為了查看方便,可以對分組計數(shù)后的數(shù)據(jù)進行排序。再使用head()函數(shù)查看排序后的情況??梢钥闯鲈u分最多的用戶ID是535e6f7ef1626bedd166e4dfa49bc0b4,一共評論了1149次。這里movie_id和rating的數(shù)據(jù)是相同的,是由于其計數(shù)規(guī)則是一致的,所以屬于冗余數(shù)據(jù)。但是head()函數(shù)能看到的數(shù)據(jù)太少,所以可以使用describe()函數(shù)來看統(tǒng)計信息。用戶評論情況統(tǒng)計用戶角度分析接下來,我們可以用相似的辦法,從電影的角度來看數(shù)據(jù)的分布情況,例如每一部電影被評論的次數(shù)。要獲取每一部電影的評分次數(shù)就需要通過對影片的ID進行分組和計數(shù),但是為了提高數(shù)據(jù)的可觀性,可以通過關(guān)聯(lián)操作將影片的名稱顯示出來。通過pandas的merge函數(shù),我們可以很容易做到數(shù)據(jù)的關(guān)聯(lián)操作??梢钥吹?,被評分次數(shù)最多的電影就是《尋龍訣》,一共被評分320次。同樣,user和rating的數(shù)據(jù)是一致的,屬于冗余數(shù)據(jù)。然后我們來看一下詳細的統(tǒng)計數(shù)據(jù)和直方圖。電影評分次數(shù)統(tǒng)計01接下來同樣要對評分值進行觀察。從統(tǒng)計數(shù)據(jù)中可以看出所有電影的平均分?jǐn)?shù)和中位數(shù)很接近,大約是3.3左右,說明整體的分布比較均勻。然后我們可以將評分次數(shù)和評分值進行結(jié)合進行觀察。從輸出的數(shù)據(jù)可以看出,有些電影如《尋龍訣》本身被評分的次數(shù)很多,但是綜合評分并不高,這也符合實際的情況。從plot()方法輸出的散點圖中可以看到,總體上數(shù)據(jù)還是呈現(xiàn)“>”分布,但是在評分次數(shù)在100和200左右出現(xiàn)了比較分散的情況,和之前的直方圖是相對應(yīng)的,這也許也是一種特殊現(xiàn)象,而是否是一種規(guī)律就需要更多的數(shù)據(jù)來分析和研究。電影評分值觀察02電影角度分析--------------PowerPointDesign電影推薦04PARTPOWERPOINTDESIGN協(xié)同過濾推薦算法推薦算法大致可以分為三類:協(xié)同過濾推薦算法、基于內(nèi)容的推薦算法和基于知識的推薦算法。其中協(xié)同過濾算法是誕生較早且較為著名的算法,其通過對用戶歷史行為數(shù)據(jù)的挖掘發(fā)現(xiàn)用戶的偏好,基于不同的偏好對用戶進行群組劃分并推薦品味相似的商品。協(xié)同過濾推薦算法分為兩類,分別是基于用戶的協(xié)同過濾算法(user-basedcollaborativefiltering),和基于物品的協(xié)同過濾算法(item-basedcollaborativefiltering)?;谟脩舻膮f(xié)同過濾算法是通過用戶的歷史行為數(shù)據(jù)發(fā)現(xiàn)用戶對商品或內(nèi)容的喜歡(如商品購買,收藏,內(nèi)容評論或分享),并對這些喜好進行度量和打分。根據(jù)不同用戶對相同商品或內(nèi)容的態(tài)度和偏好程度計算用戶之間的關(guān)系,然后在有相同喜好的用戶間進行商品推薦。其中比較重要的就是距離的計算,可以使用余弦相似性、Jaccard來實現(xiàn)。整體的實現(xiàn)思路就是:使用余弦相似性構(gòu)建鄰近性矩陣,然后使用KNN算法從鄰近性矩陣中找到某用戶臨近的用戶,并將這些臨近用戶點評過的影片作為備選,然后將鄰近性的值作為權(quán)重作為推薦的得分,相同的分?jǐn)?shù)可以累加,最后排除該用戶已經(jīng)評價后的影片。部分腳本如代碼清單10-13所示。代碼中給出的是基于用戶的協(xié)同過濾算法,可以試著寫出基于影片的協(xié)同過濾算法來試下電影推薦,然后對比算法的優(yōu)良性?;谟脩舻膮f(xié)同過濾算法推薦算法介紹鄰近性矩陣建立ratings_pivot=ratings.pivot('user','movie_id','rating')ratings_pivot.fillna(value=0)m,n=ratings_pivot.shapeuserdist=np.zeros([m,m])foriinrange(m):forjinrange(m):userdist[i,j]=np.dot(ratings_pivot.iloc[i,],ratings_pivot.iloc[j,])/np.sqrt(np.dot(ratings_pivot.iloc[i,],ratings_pivot.iloc[i,])*np.dot(ratings_pivot.iloc[j,],ratings_pivot.iloc[j,]))proximity_matrix=pd.DataFrame(userdist,index=list(ratings_pivot.index),columns=list(ratings_pivot.index))推薦電影列表獲取deffind_user_knn(user,proximity_matrix=proximity_matrix,k=10):hbrs=userdistdf.sort(user,ascending=False)[user][1:k+1]returnnhbrsdefrecommend_movie(user,ratings_pivot=ratings_pivot,proximity_matrix=proximity_matrix):nhbrs=find_user_knn(user,proximity_matrix=proximity_matrix,k=10)recommendlist={}fornhbridinnhbrs.index:ratings_nhbr=ratings[ratings['user']==nhbrid]formovie_idinratings_nhbr['movie_id']:ifmovie_idnotinrecommendlist:recommendlist[movie_id]=nhbrs[nhbrid]else:recommendlist[movie_id]=recommendlist[movie_id]+nhbrs[nhbrid]ratings_user=ratings[ratings['user']==user]formovie_idinratings_user['movie_id']:ifmovie_idinrecommendlist:recommendlist.pop(movie_id)output=pd.Series(recommendlist)recommendlistdf=pd.DataFrame(output,columns=['score'])s=['movie_id']returnrecommendlistdf.sort('score',ascending=False)推薦算法實現(xiàn)--------------PowerPointDesign總結(jié)與展望05PARTPOWERPOINTDESIGN01本章通過一個利用機器學(xué)習(xí)進行的影評數(shù)據(jù)分析案例,展示了從數(shù)據(jù)準(zhǔn)備、工具選擇、初步分析到電影推薦的完整過程。數(shù)據(jù)分析是信息時代的一個基礎(chǔ)而又重要的工作,面對飛速增長的數(shù)據(jù),如何從這些數(shù)據(jù)中挖掘到更有價值的信息成為一個重要的研究方向。在明確分析目標(biāo)后,我們進行了數(shù)據(jù)采集、清洗和整理,選擇了合適的工具進行數(shù)據(jù)分析,并從用戶和電影兩個角度進行了初步分析。最后,我們實現(xiàn)了基于用戶的協(xié)同過濾算法,為用戶推薦了他們可能喜歡的電影。02分析過程回顧通過本項目的實施,我們成功地實現(xiàn)了一個電影推薦系統(tǒng),能夠根據(jù)用戶的評分?jǐn)?shù)據(jù)為用戶推薦他們可能感興趣的電影。這個系統(tǒng)不僅展示了數(shù)據(jù)分析的整個過程,還提供了一個實際的應(yīng)用場景,展示了機器學(xué)習(xí)在推薦系統(tǒng)中的應(yīng)用。項目成果項目總結(jié)算法優(yōu)化與改進未來,我們可以進一步優(yōu)化和改進推薦算法,例如嘗試不同的相似性計算方法,或者結(jié)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論