python处理Movielens数据集(1M)

导入需要的包

import numpy as np
import pandas as pd

设置常数及参数。用户数、物品数与评分总数可以查看文件或使用python读取数据获得。

n_users = 6040 # 用户的总数
n_items = 3952 # 物品的总数
n_all_ratings = 1000209 # 总的评价数
train_ratio = 0.9 # 训练集所占比例 

初始化所有用户的评分矩阵与隐式评分矩阵,以及测试集与训练集的评分矩阵与隐式评分矩阵

ratings = np.zeros((n_users,n_items)) # 用户-物品评分矩阵
mask_ratings = np.zeros((n_users,n_items)) # 用户-物品隐式评分矩阵

train_ratings = np.zeros((n_users,n_items)) # 训练集用户-物品评分矩阵
test_ratings = np.zeros((n_users,n_items)) # 测试集用户-物品评分矩阵

train_mask_ratings = np.zeros((n_users,n_items)) #训练集用户-物品隐式评分矩阵
test_mask_ratings = np.zeros((n_users,n_items)) #测试集用户-物品隐式评分矩阵

将评分顺序随机打乱,划分测试集与训练集。

random_perm_idx = np.random.permutation(n_all_ratings) # 返回一个随机排列的序列,目的是打乱评分顺序
train_idx = random_perm_idx[0:int(n_all_ratings*train_ratio)] # 训练集数据索引
test_idx = random_perm_idx[int(n_all_rati
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MOVIELENS数据集是一个常用的用于推荐系统开发和研究的数据集,包含了用户对电影的评分和电影的详细信息等数据。下面简单介绍如何通过Python导入MOVIELENS数据集,并对数据进行一些简单的处理。 首先,从MOVIELENS官网下载数据集,并解压到本地目录。数据集包括三个文件:ratings.csv、movies.csv和links.csv。其中,ratings.csv文件包含了用户对电影的评分信息,movies.csv文件包含了电影的详细信息,links.csv文件包含了电影在IMDB和The Movie Database网站上的链接信息。 接下来,我们使用Python中的pandas库来导入数据集。pandas是Python中一个强大的数据处理库,可以方便地进行数据读取、清洗、转换等操作。 ```python import pandas as pd # 读取ratings.csv文件 ratings = pd.read_csv('ratings.csv') # 输出前5行数据 print(ratings.head()) ``` 输出结果如下: ``` userId movieId rating timestamp 0 1 1 4.0 964982703 1 1 3 4.0 964981247 2 1 6 4.0 964982224 3 1 47 5.0 964983815 4 1 50 5.0 964982931 ``` 接下来,我们可以对数据集进行一些简单的处理。例如,我们可以统计每个电影的平均评分,并按照评分从高到低排序。 ```python # 读取movies.csv文件 movies = pd.read_csv('movies.csv') # 合并ratings和movies数据集 data = pd.merge(ratings, movies, on='movieId') # 按照电影id分组,计算每个电影的平均评分 mean_ratings = data.groupby('movieId')['rating'].mean() # 按照平均评分从高到低排序 sorted_ratings = mean_ratings.sort_values(ascending=False) # 输出前10个电影的平均评分 print(sorted_ratings.head(10)) ``` 输出结果如下: ``` movieId 88448 5.0 100556 5.0 143031 5.0 143511 5.0 143559 5.0 6201 5.0 102217 5.0 102084 5.0 6192 5.0 145994 5.0 Name: rating, dtype: float64 ``` 以上就是使用Python导入MOVIELENS数据集并进行简单处理的方法。通过pandas库,我们可以方便地读取、处理和分析大规模的数据集

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值