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

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

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


相关文章
|
10天前
|
Python
python对象模型
这篇文章介绍了Python中的对象模型,包括各种内置对象类型如数字、字符串、列表、字典等,以及如何使用`type()`函数来查看变量的数据类型。
|
10天前
|
机器学习/深度学习 监控 TensorFlow
使用Python实现深度学习模型:智能森林火灾预警系统
使用Python实现深度学习模型:智能森林火灾预警系统
39 5
|
13小时前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能信用评分系统
使用Python实现智能信用评分系统
21 10
|
8天前
|
机器学习/深度学习 PHP 开发者
探索PHP中的面向对象编程构建你的首个机器学习模型:以Python和scikit-learn为例
【8月更文挑战第30天】在PHP的世界中,面向对象编程(OOP)是一块基石,它让代码更加模块化、易于管理和维护。本文将深入探讨PHP中面向对象的魔法,从类和对象的定义开始,到继承、多态性、封装等核心概念,再到实战中如何应用这些理念来构建更健壮的应用。我们将通过示例代码,一起见证PHP中OOP的魔力,并理解其背后的设计哲学。
|
9天前
|
机器学习/深度学习 数据采集 Python
利用Python实现简单的线性回归模型
【8月更文挑战第29天】本文将引导你了解并实践如何使用Python编程语言实现一个简单的线性回归模型。我们将通过一个实际的数据集,一步步地展示如何进行数据预处理、建立模型、训练及评估模型性能。文章旨在为初学者提供一个易于理解且实用的编程指南,帮助他们快速入门机器学习领域。
|
10天前
|
机器学习/深度学习 数据采集 传感器
使用Python实现深度学习模型:智能水质监测与管理
使用Python实现深度学习模型:智能水质监测与管理
30 1
|
7天前
|
机器学习/深度学习 人工智能 自动驾驶
探索AI的魔法:用Python构建你的第一个机器学习模型
【8月更文挑战第31天】在这个数字时代,人工智能(AI)已经渗透到我们生活的方方面面。从智能助手到自动驾驶汽车,AI正在改变世界。本文将带你走进AI的世界,通过Python编程语言,一步步教你如何构建第一个机器学习模型。无论你是编程新手还是有经验的开发者,这篇文章都将为你打开新世界的大门,让你体验到创造智能程序的乐趣和成就感。所以,让我们一起开始这段激动人心的旅程吧!
|
7天前
|
机器学习/深度学习 算法 Python
Python中实现简单的线性回归模型
【8月更文挑战第31天】本文将通过Python编程语言,介绍如何实现一个简单的线性回归模型。我们将从理论出发,逐步深入到代码实现,最后通过实例验证模型的有效性。无论你是初学者还是有一定编程基础的读者,都能从中获得启发和收获。让我们一起探索线性回归的世界吧!
|
2天前
|
数据采集 机器学习/深度学习 数据挖掘
探索Python编程之美:从基础到进阶
【9月更文挑战第4天】在数字时代的浪潮中,编程已成为一种新兴的“超能力”。Python,作为一门易于上手且功能强大的编程语言,正吸引着越来越多的学习者。本文将带领读者走进Python的世界,从零基础出发,逐步深入,探索这门语言的独特魅力和广泛应用。通过具体代码示例,我们将一起解锁编程的乐趣,并理解如何利用Python解决实际问题。无论你是编程新手还是希望提升技能的开发者,这篇文章都将为你打开一扇通往高效编程的大门。
|
3天前
|
数据采集 机器学习/深度学习 数据挖掘
探索Python编程之美:从基础到实战
【9月更文挑战第3天】本文旨在通过深入浅出的方式,带领读者领略Python编程语言的魅力。我们将从基本语法入手,逐步深入至高级特性,最终通过实战案例将理论知识与实践操作相结合。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
下一篇
DDNS