日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

ML之RS:基于用户的CF+LFM实现的推荐系统(基于相关度较高的用户实现电影推荐)

發布時間:2025/3/21 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ML之RS:基于用户的CF+LFM实现的推荐系统(基于相关度较高的用户实现电影推荐) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ML之RS:基于用戶的CF+LFM實現的推薦系統(基于相關度較高的用戶實現電影推薦)

?

目錄

輸出結果

實現代碼


?

?

?

輸出結果

?

?

實現代碼

#ML之RS:基于CF和LFM實現的推薦系統 import numpy as np import pandas as pd import matplotlib.pyplot as plt import time import warnings warnings.filterwarnings('ignore') np.random.seed(1)plt.style.use('ggplot') # data = pd.read_csv('ml-20m/ratings_smaller.csv', index_col=0) # movies = pd.read_csv('ml-20m/movies_smaller.csv')#1、導入數據集 data = pd.read_csv('ml-latest-small/ratings.csv') movies = pd.read_csv('ml-latest-small/movies.csv') movies = movies.set_index('movieId')[['title', 'genres']]#2、觀察數據集 # How many users? print (data.userId.nunique(), 'users')# How many movies? print (data.movieId.nunique(), 'movies')# How possible ratings? print (data.userId.nunique() * data.movieId.nunique(), 'possible ratings')# How many do we have? print (len(data), 'ratings') print (100 * (float(len(data)) / (data.userId.nunique() * data.movieId.nunique())), '% of possible ratings')# Number of ratings per users fig = plt.figure(figsize=(10, 10)) ax = plt.hist(data.groupby('userId').apply(lambda x: len(x)).values, bins=50) plt.xlabel("ratings") plt.ylabel("users") plt.title("Number of ratings per user") plt.show()# Number of ratings per movie fig = plt.figure(figsize=(10, 10)) ax = plt.hist(data.groupby('movieId').apply(lambda x: len(x)).values, bins=50) plt.xlabel("ratings") plt.ylabel("movies") plt.title('Number of ratings per movie') plt.show()# Ratings distribution評分分布 fig = plt.figure(figsize=(10, 10)) ax = plt.hist(data.rating.values, bins=5) plt.xlabel("ratings") plt.ylabel("numbers") plt.title("Distribution of ratings") plt.show()# Average rating per user fig = plt.figure(figsize=(10, 10)) ax = plt.hist(data.groupby('userId').rating.mean().values, bins=10) plt.xlabel("Average rating") plt.ylabel("numbers") plt.title("Average rating per user") plt.show()# Average rating per movie fig = plt.figure(figsize=(10, 10)) ax = plt.hist(data.groupby('movieId').rating.mean().values, bins=10) plt.title('Average rating per movie') plt.show()# Top Movies,genres電影類型 average_movie_rating = data.groupby('movieId').mean() top_movies = average_movie_rating.sort_values('rating', ascending=False).head(10) pd.concat([movies.loc[top_movies.index.values],average_movie_rating.loc[top_movies.index.values].rating], axis=1)# Robust Top Movies - Lets weight the average rating by the square root of number of ratings讓平均評分進行加權數的平方根 top_movies = data.groupby('movieId').apply(lambda x:len(x)**0.5 * x.mean()).sort_values('rating', ascending=False).head(10) pd.concat([movies.loc[top_movies.index.values], average_movie_rating.loc[top_movies.index.values].rating], axis=1)controversial_movies = data.groupby('movieId').apply(lambda x:len(x)**0.25 * x.std()).sort_values('rating', ascending=False).head(10) pd.concat([movies.loc[controversial_movies.index.values], average_movie_rating.loc[controversial_movies.index.values].rating], axis=1)

?

?

?

相關文章推薦

GitHub

?

?

總結

以上是生活随笔為你收集整理的ML之RS:基于用户的CF+LFM实现的推荐系统(基于相关度较高的用户实现电影推荐)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。