赞
踩
电影数据分析
目录
电影数据分析 1
一、、实验概述 1
1.1 实验标 1
1.2 .实验完成情况 1
二、、电影特征的可视化分析 2
电影票房预测 9
2.1 Data Augmentation 9
2.1.1 算法说明 10
2.1.2 实验结果 13
电影推荐算法 15
3.1 基于统计学的推荐 15
3.1.1 score = v +v m r + mm+ v c 15
3.2 基于内容的推荐算法 15
3.3 基于 KNN 的协同过滤算法 17
3.3.1 针对电影相似度的推荐算法 17
3.3.2 针对户相似度的推荐算法 18
3.4 基于奇异值分解的推荐算法 19
3.5 集成推荐算法 22
3.5.1 KNN+ 本的集成推荐 22
3.5.2 户 KNN+ 电影 KNN 22
3.5.3 户 KNN+ 奇异值分解 22
一、、实验概述
1.1 实验标
本项目希望基于电影数据集,依据电影的简介、关键词、预算、票房、用户评分等特征来对电影进行分析,并完成以下任务:
对电影特征的可视化分析对电影票房的预测
多功能个性化的电影推荐算法
1.2 .实验完成情况
完成了对电影特征的可视化分析。
完成了基于电影特征的电影票房预测算法,并在 Kaggle 的 TMDB Box Office Prediction 比赛中最终取得
了前 6.8%(95/1400)的成绩。
完成了基于简单特征(内容、评分、关键词)的三种推荐算法、基于 KNN 的两种协同过滤算法、基于奇异值分解的推荐算法以及三种集成推荐算法,共设计并实现了九种电影推荐算法。
二、、电影特征的可视化分析
本项目中,我首先对电影数据的一些特征进行了可视化分析,来为之后的票房预测和电影推荐做帮助。
首先我分别绘制了票房与预算、欢迎程度(popularity)、戏剧性程度(theatrical)的关系图,如下图所示:
#-*-coding:utf-8-*- import pandas as pd import sys import os import csv sys.path.insert(0, '..') from personal_recommender.KNN_movie import Movie_KNN_recommender from personal_recommender.KNN_user import Personal_KNN_recommender from personal_recommender.Personal_SVD import Personal_SVD_recommender # 首先用KNN对输入的用户进行相似度匹配,然后挑选出最接近的10个其他用户 # 之后对于选出的电影,根据SVD计算用户对电影的模拟评分来进行排序 class KNN_SVD_ensemble: def __init__(self): self.user = Personal_KNN_recommender() self.movie = Personal_SVD_recommender() self.testings = pd.read_csv('../data/personal/test.csv') self.userid = [] for i in range(len(self.testings['userId'])): if not self.testings['userId'][i] in self.userid: self.userid.append(self.testings['userId'][i]) def recommend(self, usrID): _, first_ids = self.user.recommend(usrID, 50) # print(first_ids) second_ids, movie_id = self.movie.recommend(usrID, first_ids, 10) # print(second_ids) return movie_id def test(self, num): result = [] for user in self.userid: print(user) ids = self.recommend(user) print(ids) result.append(ids) with open("./result.csv", "w") as csvfile: writer = csv.writer(csvfile) writer.writerow(['userId', 'result']) for i, row in enumerate(result): writer.writerow([self.userid[i], row]) test = KNN_SVD_ensemble() # test.recommend(2) test.test(10)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。