在數據時代,推薦系統是提升用戶體驗的重要工具。今天介紹如何使用亞馬遜的電影評分數據集創建電影推薦系統。
首先,通過加載和探索數據集開啟數據分析過程。首先導入Pandas和Numpy,這是進行數據處理的基礎庫。通過檢查數據集的前幾行、形狀、大小和統計摘要進行探索。.head()方法可以讓我們一窺數據集的全貌,而.shape方法則展示了數據集的大小。
import pandas as pdimport numpy as np amazon = pd. read_csv (" path_to / Amazon . csv")print ( amazon . head ()print (" Dataset ? shape :", amazon . shape )
為了確保分析的完整性,必須替換缺失值并完善DataFrame。fillna方法可用于處理缺失值,這對于保持數據完整性至關重要。刪除不相關的列(如'user_id')可以使分析集中在電影評分上。
Amazon_filtered = amazon . fillna ( value =0)Amazon_filtered1 = Amazon_filtered . drop ( columns =’user_id ’)
通過分析瀏覽量,分析電影的受歡迎程度,這涉及對評分進行求和并找到最大值。按電影對評分進行求和可以得到一個受歡迎度指標。argmax()函數可以識別出觀看次數最多的電影。
Amazon_max_views = Amazon_filtered1 .sum ()max_views_index = Amazon_max_views . argmax ()print (" Most_viewed _movie _index :", max_views_index )
通過計算電影的平均評分,可以了解觀眾的總體滿意度。
average_ratings = Amazon_max_views . mean ()print (" Average_rating :", average_ratings )
from surprise import Reader , Datasetreader = Reader ( rating_scale =(-1, 10))data = Dataset . load_from_df ( melt_df . fillna (0) , reader )
from surprise import SVDfrom surprise.model_selection import train_test_split ,cross_validatetrainset , testset = train_test_split (data , test_size =0.25)algo = SVD ()algo . fit( trainset )predictions = algo . test ( testset )cross_validate (algo , data , measures =[ ’RMSE ’, ’MAE ’], cv =3,verbose = True )
user_id = ’ A1CV1WROP5KTTW ’movie = ’Movie6 ’rating = 5algo . predict ( user_id , movie , r_ui = rating )
結果如下所示:
圖片
這個腳本不僅揭示了亞馬遜電影評分數據的復雜性,還提供了一個多功能的分析工具包。這里的方法也可以適用于各種數據場景。例如,在教育領域,類似的推薦系統可以推薦個性化的學習材料、課程甚至課外活動,從而提高學生的參與度和學習效果。
利用Surprise庫,根據學生的偏好推薦教育資源。
import pandas as pd# 假設'education_data.csv'包含列'student_id'、'resource_id'和'rating'education_data = pd. read_csv (" path_to / education_data . csv")print ( education_data . head ()
找出最受歡迎或評分最高的教育資源。
resource_popularity = education_filtered . groupby’resource_id ’). sum ()most_popular_resource =resource_popularity [’rating ’]. idxmax ()print (" Most_popular_resource :{ most_popular_resource }")
利用Surprise庫,根據用戶偏好推薦教育資源。
resource_popularity =education_filtered . groupby (’ resource_id ’). sum ()most_popular_resource =resource_popularity [’rating ’]. idxmax ()print (" Most _popular _resource :{ most_popular_resource }")
針對特定學生和教育資源預測評分,展示該模型在教育環境中的適用性。
Student_id = ’student123 ’resource = ’course456 ’predicted_rating = algo . predict ( Student_id , resource ). estprint (" Predicted_rating_for_resource{ resource }_by_user_{ user_id }:{ predicted_rating }")
可以在Github上查看源代碼和數據集。
【Github】:https://github.com/chukolate007/amazon-user-based-recommendation-system
本文鏈接:http://www.www897cc.com/showinfo-26-39517-0.html基于Python和Surprise庫,新手也能動手搭建推薦系統
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com