自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于Python和Surprise庫,新手也能動(dòng)手搭建推薦系統(tǒng)

開發(fā) 前端
通過加載和探索數(shù)據(jù)集開啟數(shù)據(jù)分析過程。首先導(dǎo)入Pandas和Numpy,這是進(jìn)行數(shù)據(jù)處理的基礎(chǔ)庫。通過檢查數(shù)據(jù)集的前幾行、形狀、大小和統(tǒng)計(jì)摘要進(jìn)行探索。.head()?方法可以讓我們一窺數(shù)據(jù)集的全貌,而.shape方法則展示了數(shù)據(jù)集的大小。

1、簡(jiǎn)介

在數(shù)據(jù)時(shí)代,推薦系統(tǒng)是提升用戶體驗(yàn)的重要工具。今天介紹如何使用亞馬遜的電影評(píng)分?jǐn)?shù)據(jù)集創(chuàng)建電影推薦系統(tǒng)。

2、數(shù)據(jù)加載與探索

首先,通過加載和探索數(shù)據(jù)集開啟數(shù)據(jù)分析過程。首先導(dǎo)入Pandas和Numpy,這是進(jìn)行數(shù)據(jù)處理的基礎(chǔ)庫。通過檢查數(shù)據(jù)集的前幾行、形狀、大小和統(tǒng)計(jì)摘要進(jìn)行探索。.head()方法可以讓我們一窺數(shù)據(jù)集的全貌,而.shape方法則展示了數(shù)據(jù)集的大小。

import pandas as pd
import numpy as np 
amazon = pd. read_csv (" path_to / Amazon . csv")
print ( amazon . head ()
print (" Dataset ? shape :", amazon . shape )

3、數(shù)據(jù)清洗和預(yù)處理

為了確保分析的完整性,必須替換缺失值并完善DataFrame。fillna方法可用于處理缺失值,這對(duì)于保持?jǐn)?shù)據(jù)完整性至關(guān)重要。刪除不相關(guān)的列(如'user_id')可以使分析集中在電影評(píng)分上。

Amazon_filtered = amazon . fillna ( value =0)
Amazon_filtered1 = Amazon_filtered . drop ( columns =’user_id ’)

4、深入分析瀏覽量和評(píng)分

通過分析瀏覽量,分析電影的受歡迎程度,這涉及對(duì)評(píng)分進(jìn)行求和并找到最大值。按電影對(duì)評(píng)分進(jìn)行求和可以得到一個(gè)受歡迎度指標(biāo)。argmax()函數(shù)可以識(shí)別出觀看次數(shù)最多的電影。

Amazon_max_views = Amazon_filtered1 .sum ()
max_views_index = Amazon_max_views . argmax ()
print (" Most_viewed _movie _index :", max_views_index )

5、計(jì)算平均評(píng)分

通過計(jì)算電影的平均評(píng)分,可以了解觀眾的總體滿意度。

average_ratings = Amazon_max_views . mean ()
print (" Average_rating :", average_ratings )

6、建立推薦模型:SVD算法

  • 格式化數(shù)據(jù)供Surprise使用:通過準(zhǔn)備數(shù)據(jù)以供Surprise庫使用來為推薦做好準(zhǔn)備。
from surprise import Reader , Dataset
reader = Reader ( rating_scale =(-1, 10))
data = Dataset . load_from_df ( melt_df . fillna (0) , reader )
  • 模型訓(xùn)練與評(píng)估:該系統(tǒng)的開發(fā)目的是根據(jù)用戶的偏好來推薦電影,推薦系統(tǒng)的首選工具Surprise庫。
from surprise import SVD
from surprise.model_selection import train_test_split ,
cross_validate
trainset , 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 )
  • 進(jìn)行預(yù)測(cè):現(xiàn)在,使用SVD算法進(jìn)行預(yù)測(cè),該算法是進(jìn)行矩陣因式分解的強(qiáng)大工具,用于預(yù)測(cè)用戶對(duì)電影的評(píng)分。
user_id = ’ A1CV1WROP5KTTW ’
movie = ’Movie6 ’
rating = 5
algo . predict ( user_id , movie , r_ui = rating )

結(jié)果如下所示:

圖片圖片

7、結(jié)論(模型應(yīng)用)

這個(gè)腳本不僅揭示了亞馬遜電影評(píng)分?jǐn)?shù)據(jù)的復(fù)雜性,還提供了一個(gè)多功能的分析工具包。這里的方法也可以適用于各種數(shù)據(jù)場(chǎng)景。例如,在教育領(lǐng)域,類似的推薦系統(tǒng)可以推薦個(gè)性化的學(xué)習(xí)材料、課程甚至課外活動(dòng),從而提高學(xué)生的參與度和學(xué)習(xí)效果。

8、教育示例

利用Surprise庫,根據(jù)學(xué)生的偏好推薦教育資源。

  • 數(shù)據(jù)集:
import pandas as pd
# 假設(shè)'education_data.csv'包含列'student_id'、'resource_id'和'rating'
education_data = pd. read_csv (" path_to / education_data . csv")
print ( education_data . head ()
  • 分析資源受歡迎程度:

找出最受歡迎或評(píng)分最高的教育資源。

resource_popularity = education_filtered . groupby
’resource_id ’). sum ()
most_popular_resource =
resource_popularity [’rating ’]. idxmax ()
print (" Most_popular_resource :
{ most_popular_resource }")
  • 建立教育推薦模型:

利用Surprise庫,根據(jù)用戶偏好推薦教育資源。

resource_popularity =
education_filtered . groupby (’ resource_id ’). sum ()
most_popular_resource =
resource_popularity [’rating ’]. idxmax ()
print (" Most _popular _resource :{ most_popular_resource }")
  • 推薦教育資源:

針對(duì)特定學(xué)生和教育資源預(yù)測(cè)評(píng)分,展示該模型在教育環(huán)境中的適用性。

Student_id = ’student123 ’
resource = ’course456 ’
predicted_rating = algo . predict ( Student_id , resource ). est
print (" Predicted_rating_for_resource
{ resource }_by_user_{ user_id }:{ predicted_rating }")

可以在Github上查看源代碼和數(shù)據(jù)集。

【Github】:https://github.com/chukolate007/amazon-user-based-recommendation-system

責(zé)任編輯:武曉燕 來源: Python學(xué)研大本營(yíng)
相關(guān)推薦

2024-03-01 08:00:00

2020-02-07 10:46:31

Python數(shù)據(jù)庫MySQL

2024-04-12 07:40:37

因果推斷推薦模型推薦系統(tǒng)

2023-10-08 13:50:00

AI數(shù)據(jù)

2022-10-21 16:07:10

編碼器自然語言模型

2009-06-29 12:37:21

linux

2020-05-20 13:53:41

HTTP環(huán)境安裝

2018-05-16 10:07:02

監(jiān)控報(bào)警系統(tǒng)

2015-07-06 11:18:40

游戲運(yùn)營(yíng)設(shè)計(jì)教程

2022-10-28 19:00:00

Python

2015-10-08 14:03:01

TCP網(wǎng)絡(luò)協(xié)議

2013-11-26 13:11:20

編程優(yōu)秀產(chǎn)品移動(dòng)應(yīng)用

2013-11-29 14:07:29

編程產(chǎn)品

2023-10-31 16:46:45

2021-07-07 10:00:03

深度學(xué)習(xí)系統(tǒng)機(jī)構(gòu)

2009-06-18 14:13:53

動(dòng)態(tài)化系統(tǒng)OSGi

2016-12-29 10:32:06

2021-01-15 13:20:06

Python國(guó)產(chǎn)庫musicpy

2018-11-26 14:30:08

Python開發(fā)工具編程語言

2011-06-30 17:41:46

SEO
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)