movieslens数据集简介

原创:石晓文

1、数据集简介

MovieLens数据集包含多个用户对多部电影的评级数据,也包括电影元数据信息和用户属性信息。

这个数据集经常用来做推荐系统,机器学习算法的测试数据集。尤其在推荐系统领域,很多著名论文都是基于这个数据集的。(PS: 它是某次具有历史意义的推荐系统竞赛所用的数据集)。

下载地址为:http://files.grouplens.org/datasets/movielens/,有好几种版本,对应不同数据量,本文所用的数据为1M的数据。

2、数据介绍

1m的数据解压后,可以看到四个主要的csv文件,分别是links.csv,movies.csv,ratings.csv,tags.csv。links介绍了该数据集中的movieId和imdb、tmdb中电影的对应关系。tags是用户的打标签数据。本文的介绍主要基于ratings.csv 和 movies.csv

ratings数据
文件里面的内容包含了每一个用户对于每一部电影的评分。数据格式如下:
userId, movieId, rating, timestamp
userId: 每个用户的id
movieId: 每部电影的id
rating: 用户评分,是5星制,按半颗星的规模递增(0.5 stars - 5 stars)
timestamp: 自1970年1月1日零点后到用户提交评价的时间的秒数
数据排序的顺序按照userId,movieId排列的。

我们用pandans观察数据的描述及前五行:


       
       
       
       
  1. ratings = pd.read_csv('../data/ml-1m/ratings.csv',index_col=None)
  2. ratings.describe()
  3. ratings.head(5)

输出为:

movies数据
文件里包含了一部电影的id和标题,以及该电影的类别。数据格式如下:
movieId, title, genres
movieId:每部电影的id
title:电影的标题
genres:电影的类别(详细分类见readme.txt)

我们用pandans观察数据的前五行:


       
       
       
       
  1. movies = pd.read_csv('../data/ml-1m/movies.csv',index_col=None)
  2. movies.head(5)

输出为:

合并数据集
我们可以根据movieId来合并两个数据集

data = pd.merge(ratings,movies,on='movieId')

       
       
       
       

汇总每部电影的评分数量
合并数据集之后,我们可以看一下每部电影的评分数量,并按照降序进行排序:


       
       
       
       
  1. rating_count_by_movie = data.groupby(['movieId','title'],as_index=False)['rating'].count()
  2. rating_count_by_movie.columns=['movieId','title','rating_count']
  3. rating_count_by_movie.sort_values(by=['rating_count'],ascending=False,inplace=True)
  4. rating_count_by_movie[:10]

输出为:

得到打分的平均值及方差


       
       
       
       
  1. rating_stddev = data.groupby([ 'movieId', 'title']).agg({ 'rating':[ 'mean', 'std']})
  2. rating_stddev.head(10)

输出为:

本文就先介绍到这里吧!


你可能感兴趣的:(推荐系统)