Python使用随机森林模型进行电影评分预测

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: Python使用随机森林模型进行电影评分预测

综合运用数据分析与数据挖掘课程中的数据探索、数据预处理、分析建模等理论知识,能够根据不同的业务的场景,选定不同的数据分析与数据挖掘模型,并能够通过Python语言及第三方库编程实现,培养学生数据分析思维,为学生今后从事数据分析相关工作奠定基础

数据处理

对数据进行质量探索,包括重复值,缺失值,异常值,不一致的值等

1. # 加载数据
2. import pandas as pd 
3. credits_data=pd.read_csv("data/项目一/tmdb_5000_credits.csv")
4. credits_data.shape# 查看数据的维度

两张表的数据处理

1. print('-------------------------------------统计量描述-------------------------------------')
2. explore = credits_data.describe(percentiles=[], include='all').T # percentiles参数是指定计算多少的分位数表
3. explore['null'] = len(credits_data) - explore['count'] # describe()函数自动计算非空值数,需要手动计算空值数
4. print(explore.head())
5. explore = explore[['null', 'max', 'min','mean']]
6. explore.columns = [u'空值数', u'最大值', u'最小值',u'平均值']  # 表头重命名
7. # explore.to_csv('data/项目一/credits_data统计量描述.csv')  # 保存结果
8. print('--------------------------------------空值统计--------------------------------------')
9. print(credits_data.isnull().sum())

描述性分析

导入表数据

1. #导入tmdb_5000_movies表中的数据
2. data_movies=pd.read_csv("data/项目一/tmdb_5000_movies.csv")
3. data_movies.head(2)

描述性分析

数据划分

选取我们所需要的字段进行划分数据集,使用特征选取函数,选取六个最好的特征进行建模。

1. x=data_L.drop("vote_average",axis=1) #自变量
2. y=data_L["vote_average"]# 因变量

1. from sklearn.model_selection import train_test_split
2. #划分数据集 训练集80%测试集20%
3. x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.2,random_state=42)

数据建模

随机森林模型

随机森林是一种有监督学习算法。就像它的名字一样,它创建了一个森林,并使它拥有某种方式随机性。所构建的“森林”是决策树的集成,大部分时候都是用“bagging”方法训练的。bagging 方法,即 bootstrapaggregating,采用的是随机有放回的选择训练数据然后构造分类器,最后组合学习到的模型来增加整体的效果。简而言之,随机森林建立了多个决策树,并将它们合并在一起以获得更准确和稳定的预测

1. import numpy as np
2. import matplotlib.pyplot as plt
3. from sklearn.ensemble import RandomForestRegressor
4. from sklearn.model_selection import train_test_split
5. from sklearn.multioutput import MultiOutputRegressor
6. # #定义模型
7. regr_rf = RandomForestRegressor()
8. # 集合模型
9. regr_rf.fit(x_train, y_train)
10. # 利用预测 
11. y_rf = regr_rf.predict(x_test) 
12. #评价
13. print(regr_rf.score(x_test, y_test)) 
14. # y_rf.round(1)

模型评估

学习曲线也是有很好的走向,重合了大部分的真实值,其中budget,popularity, release_date, revenue, runtime, vote_count字段是影响评分的主要因素,在自变量确定的情况下使用模型能够很好的对评分进行准确的的预测。一部电影能有很不错的收益,参与影评的人也多,在全国的流行度也高,这想当然是一部高分电影。也充分说明了随机森林就是根据多决策的方式进行结果的准确预测

1. import numpy as np
2. import matplotlib.pyplot as plt
3. from sklearn.ensemble import RandomForestRegressor
4. from sklearn.model_selection import train_test_split
5. from sklearn.multioutput import MultiOutputRegressor
6. from sklearn.model_selection import train_test_split
7. x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.2,random_state=93)
8. # #定义模型 决策树的个数设置150 树的最大深度10
9. regr_rf = RandomForestRegressor(n_estimators=150,max_depth=10,random_state=0) 
10. 
11. # 集合模型
12. regr_rf.fit(x_train, y_train) 
13. # 利用预测 
14. y_rf = regr_rf.predict(x_test) 
15. #评价
16. print(regr_rf.score(x_test, y_test))

结果预测

查看预测结果60%以上预测的值与实际值是差不多的

随机森林是一种很好的算法是对Bagging算法进行了改进,在解决本次问题中,随机森林会是一个不错的选择。最重要的是,它为你选择的特征提供了一个很好的重要性表示。同时可以处理许多不同属性的特征类型。随机森林是从原始训练样本集N中有放回地重复随机抽取k个样本生成新的训练样本集合,然后根据自助样本集生成k个分类树组成随机森林,新数据的分类结果按分类树投票多少形成的分数而定。而电影的评分也是受到多个因素的影响产不同的结果,这就需要进行多方面的决策, 当输入样本进入的时候,随机森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类,然后看看哪一类被选择最多,就准确的预测这个样本,这也极大提高了预测电影评分的准确度。

源码及数据已上传资源,需要联系丝发!


相关文章
|
28天前
|
数据采集 数据可视化 数据挖掘
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
本文探讨了金融资产波动率建模中的三种主流方法:GARCH、GJR-GARCH和HAR模型,基于SPY的实际交易数据进行实证分析。GARCH模型捕捉波动率聚类特征,GJR-GARCH引入杠杆效应,HAR整合多时间尺度波动率信息。通过Python实现模型估计与性能比较,展示了各模型在风险管理、衍生品定价等领域的应用优势。
251 66
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
|
2月前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型的分布式训练
使用Python实现深度学习模型的分布式训练
195 73
|
2月前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品消费需求分析的深度学习模型
使用Python实现智能食品消费需求分析的深度学习模型
98 21
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费模式预测的深度学习模型
使用Python实现智能食品消费模式预测的深度学习模型
84 2
|
2月前
|
机器学习/深度学习 数据采集 搜索推荐
使用Python实现智能食品消费偏好预测的深度学习模型
使用Python实现智能食品消费偏好预测的深度学习模型
115 23
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
52 14
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
116 2
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
126 80
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。

热门文章

最新文章

推荐镜像

更多