电影院近期营业了,用Python和Tensorflow获取高分推荐电影排名

本文介绍了如何利用Python和Tensorflow构建一个电影推荐系统。首先收集并清洗了电影数据,接着创建了评分矩阵和评分纪录矩阵。然后,构建并优化了深度学习模型进行训练。经过训练后,模型得到了评估,并最终整合成一个完整的推荐系统。
摘要由CSDN通过智能技术生成

第一步:收集和清洗数据

下载文件:ml-latest-small
在这里插入图片描述

import pandas as pd
import numpy as np
import tensorflow as tf

导入ratings.csv文件

ratings_df = pd.read_csv('./ml-latest-small/ratings.csv')
ratings_df.tail()
#tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾5行。

结果:
在这里插入图片描述
导入movies.csv文件

movies_df = pd.read_csv('./ml-latest-small/movies.csv')
movies_df.tail()

结果:
在这里插入图片描述
将movies_df中的movieId替换为行号

movies_df['movieRow'] = movies_df.index
#生成一列‘movieRow’,等于索引值index
movies_df.tail()

结果:
在这里插入图片描述
筛选movies_df中的特征

movies_df = movies_df[['movieRow','movieId','title']]
#筛选三列出来
movies_df.to_csv('./ml-latest-small/moviesProcessed.csv', index=False, header=True, encoding='utf-8')
#生成一个新的文件moviesProcessed.csv
movies_df.tail()

结果:
在这里插入图片描述
根据movieId,合并rating_df和movie_df

ratings_df = pd.merge(ratings_df, movies_df, on='movieId')
ratings_df.head()

结果:
在这里插入图片描述
筛选ratings_df中的特征

ratings_df = ratings_df[['userId','movieRow','rating']]
#筛选出三列
ratings_df.to_csv('./ml-latest-small/ratingsProcessed.csv', index=False, header=True, encoding='utf-8')
#导出一个新的文件ratingsProcessed.csv
ratings_df.head()

结果:
在这里插入图片描述

第二步:创建电影评分矩阵rating和评分纪录矩阵record

userNo = ratings_df['userId'].max() + 1
#userNo的最大值
movieNo = ratings_df['movieRow'].max() + 1
#movieNo的最大值
rating = np.zeros((movieNo,userNo))
#创建一个值都是0的数据
flag = 0
ratings_df_length = np.shape(ratings_df)[0]
#查看矩阵ratings_df的第一维度是多少
for index,row in ratings_df.iterrows():
    #interrows(),对表格ratings_df进行遍历
    rating[int(row['movieRow']),int(row['userId'])] = row['rating']
    #将ratings_df表里的'movieRow'和'userId'列,填上row的‘评分’
    flag += 1
record = rating > 0
record
record = np.array(record, dtype = int)
#更改数据类型,0表示用户没有对电影评分,1表示用户已经对电影评分
record

结果:

array([[
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值