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

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,5000CU*H 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个分类树组成随机森林,新数据的分类结果按分类树投票多少形成的分数而定。而电影的评分也是受到多个因素的影响产不同的结果,这就需要进行多方面的决策, 当输入样本进入的时候,随机森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类,然后看看哪一类被选择最多,就准确的预测这个样本,这也极大提高了预测电影评分的准确度。

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


相关文章
|
3天前
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能舆情监测与分析
【8月更文挑战第16天】 使用Python实现深度学习模型:智能舆情监测与分析
16 1
|
5天前
|
算法 程序员 开发工具
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
在学习Python的旅程中你是否正在“绝望的沙漠”里徘徊? 学完基础教程的你,是否还在为选择什么学习资料犹豫不决,不知从何入手,提高自己?
|
3天前
|
设计模式 JSON 程序员
豆瓣评分9.4!Python程序员必读的《流畅的Python》,放这里了!
Python 官方教程的开头是这样写的:“Python 是一门既容易上手又强大的编程语言。””这句话本身并无大碍,但需要注意的是,正因为它既好学又好用,所以很多Python程序员只用到了其强大功能的一小部分,只需要几个小时,经验丰富的程序员就能学会用 Python 写出实用的程序。 然而随着这最初高产的几个小时变成数周甚至数月,在那些先入为主的编程语言的影响下,开发者们会慢慢地写出带着“口音”的 Python 代码。即便 Python 是你的初恋,也难逃此命运。因为在学校里,亦或是那些入门书上,教授者往往会有意避免只跟语言本身相关的特性。
|
3天前
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
11 1
|
4天前
|
设计模式 JSON 程序员
豆瓣评分9.4!Python程序员必读的《流畅的Python》,放这里了!
Python 官方教程的开头是这样写的:“Python 是一门既容易上手又强大的编程语言。””这句话本身并无大碍,但需要注意的是,正因为它既好学又好用,所以很多Python程序员只用到了其强大功能的一小部分,只需要几个小时,经验丰富的程序员就能学会用 Python 写出实用的程序。 然而随着这最初高产的几个小时变成数周甚至数月,在那些先入为主的编程语言的影响下,开发者们会慢慢地写出带着“口音”的 Python 代码。即便 Python 是你的初恋,也难逃此命运。因为在学校里,亦或是那些入门书上,教授者往往会有意避免只跟语言本身相关的特性。
|
5天前
|
算法 Ubuntu 机器人
DRAKE - 基于模型的机器人设计与验证 由丰田研究所支持的 C++ / Python 工具箱。
DRAKE - 基于模型的机器人设计与验证 由丰田研究所支持的 C++ / Python 工具箱。
14 1
|
1天前
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能娱乐与虚拟现实技术
【8月更文挑战第18天】 使用Python实现深度学习模型:智能娱乐与虚拟现实技术
5 0
|
2天前
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能城市交通管控与优化
【8月更文挑战第17天】 使用Python实现深度学习模型:智能城市交通管控与优化
3 0
|
4天前
|
机器学习/深度学习 传感器 数据采集
使用Python实现深度学习模型:智能工业与工业4.0技术
【8月更文挑战第15天】 使用Python实现深度学习模型:智能工业与工业4.0技术
15 0
|
7天前
|
算法 程序员 开发工具
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
在学习Python的旅程中你是否正在“绝望的沙漠”里徘徊? 学完基础教程的你,是否还在为选择什么学习资料犹豫不决,不知从何入手,提高自己?
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1