movielens处理代码

这一篇博客主要记录自己的代码是如何对movielens数据集进行处理的,想要达到的目的很简单,就是得到一个txt文件,形式如下:第一列为user,第二列为item,第三列为rating。

形如:

要达到这样的目的该怎么处理呢,很简单。

  1. 到达movielens的下载官网,https://grouplens.org/datasets/movielens/,选择你要下载的数据集大小类型。
  2. 其中,有csv的,有dat的。怎么处理呢?由于我只需要用户项目和评分信息我只对ratings进行处理。
  3. 如果是csv,把代码文件与csv文件放在同一个目录下,代码如下:
  4. import math
    import random
    from numpy import *
    import numpy as np
    import sys
    import os
    from pandas import Series,DataFrame
    import pandas as pd
    from sklearn.model_selection import train_test_split
    import csv
    
    
    ratings_list = csv.reader(open('ratings.csv','r'))
    
    
    
    rating_file = []
    for item in ratings_list:
        rating_file.append(str(item[0])+' '+str(item[1])+' '+str(item[2])+'\n')
        
    filename = 'ratings.txt'
    with open(filename,'w') as f:
        for i in range(len(rating_file)):
            f.write(rating_file[i])

    如果是dat,代码如下: 

    import math
    import random
    from numpy import *
    import numpy as np
    import sys
    import os
    from pandas import Series,DataFrame
    import pandas as pd
    from sklearn.model_selection import train_test_split
    
    
    ratings = pd.read_table('ratings.dat', sep='::', header=None, engine = 'python')
    
    data = ratings.filter(regex='user_id|movie_id|rating')
    
    ratings_array = np.array(ratings)
    
    ratings_list = ratings_array.tolist()
    
    rating_file = []
    for item in ratings_list:
        rating_file.append(str(item[0])+' '+str(item[1])+' '+str(item[2])+'\n')
        
    filename = 'ratings.txt'
    with open(filename,'w') as f:
        for i in range(len(rating_file)):
            f.write(rating_file[i])
  5. 运行代码后,就可以得到我们需要的ratings数据集了~

MovieLens是一款流行的电影推荐系统,它使用Python编程语言编写,并使用Apache Spark作为后端处理工具。以下是一个简单的MovieLens代码示例,用于从MovieLens数据集中获取数据并执行推荐算法。 ```python import pyspark from pyspark.ml.evaluation import RegressionEvaluator from pyspark.ml.recommendation import ALS # 加载MovieLens数据集 (ratings, features) = spark.read.csv("ml-latest0.csv", header=True, inferSchema=True).select("user_id", "movie_id", "rating", "timestamp").rdd.map(lambda r: (r[0], r[1:])) # 创建ALS模型并拟合数据 als = ALS(maxIter=5, regParam=0.01, userCol="user_id", itemCol="movie_id", ratingCol="rating") model = als.fit(ratings) # 对新用户和新电影进行推荐 recommended = model.transform(ratings).select("user_id", "recommended_item", "rating") recommended.sort("rating", ascending=False).show() # 评估推荐性能 evaluator = RegressionEvaluator(num箅酿告轮精度:比较[准确率和召回率以及f1分数计算(可能适用于对一组对象或者几个实验之间进行的简单性能评估)。首先创建一个als模型对象,读取movielens数据集。接下来,使用ALS算法对数据集进行训练并拟合模型。然后,使用模型对新用户和新电影进行推荐,并展示推荐结果。最后,使用回归评估器评估推荐性能。 需要注意的是,MovieLens代码可能因版本不同而有所差异,因此请参考官方文档以获取最新和准确的代码示例。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值