前言

学习机器学习很久了,最近也涉及相关工作。这里通过电影票房预测来和大家,了解机器学习处理的一般流程。

数据集为kaggle上的tmdb5000的电影数据集,算法使用的是相对容易理解的knn算法。硬件则是普通的笔记本。

获取数据

相关包的引入

import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

这里选择的是文件读取的方式,当然获取数据的方式是多样的。从db读取的方式也是较为常见的。

data = pd.read_csv("/home/dada/myprokect/tmdb_5000_movies.csv")

我们来大致看一眼数据

data.head()


可以看到数据维度还是比较多的,我们需要对数据进行一些基本的预处理。

数据基本处理

空值去除

大致查看了一下数据,发现数据中除了有空值外,还有一些值以0的形式出现,我们先把这些值替换为空值。

data = data.replace(0, np.nan)

接着是为出现空值的行去掉

data = data.dropna(axis=0, how="any")

特征值提取

我们先提取特征值

feature_arr = data[['budget','popularity','runtime', 'vote_average', 'vote_count']].values

我们想通过’budget’(投资),‘popularity’(热度),‘runtime’(电影时长), ‘vote_average’(评分), ‘vote_count’(评分人数)这几个维度进行票房预测。

标签值提取

我们的标签值,也就是我们要预测的那个值,这里指的是电影的票房。

我们先将数据提取出来。

tag_arr = data['revenue']

我们可以大致看一下数据

0       2.787965e+09
1       9.610000e+08
2       8.806746e+08
3       1.084939e+09
4       2.841391e+08...
4752    4.164980e+05
4758    6.008960e+05
4772    1.000000e+04
4773    3.151130e+06
4796    4.247600e+05
Name: revenue, Length: 1248, dtype: float64

由于这个标签值是连续型,也就是具体的值。我们此次使用的算法是k近邻分类算法。所以我们这里要略做处理。

我们通过pandas的分箱方法,把票房值转换为具体的高中低值。

tag_arr = np.array(pd.qcut(data['revenue'],3, labels=['低', '中', '高']))
array(['高', '高', '高', ..., '低', '低', '低'], dtype=object)

数据分割

x_train, x_test, y_train, y_test = train_test_split(feature_arr, tag_arr)

这里将数据分割为训练数据集与预测数据集,这里是默认7比3的方式。当然我们也可以自我选择分割比例。

特征工程

特征工程就对特征进行一些预处理操作,我们的训练特征均是连续型的,所以这里无需过多进行处理。这里只是对数据进行正则化转换,即把各个维度的数值拉到一个正态化的区间。

sklearn提供了相应的接口,我们可以轻松的调用。

transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)

模型训练

实例化一个KNN 预测器

revenue_predict = KNeighborsClassifier(n_neighbors=5)

模型训练

revenue_predict.fit(x_train, y_train)

模型评估

预测结果输出

然后我们就结果进行预测。

y_pre = revenue_predict.predict(x_test)
print("预测结果:\n", y_pre)
预测票房结果:['低' '中' '中' '中' '低' '中' '高' '高' '中' '高' '中' '低' '低' '高' '中' '高' '高' '中''低' '低' '中' '中' '中' '高' '高' '低' '低' '高' '高' '高' '中' '中' '低' '低' '低' '高''中' '中' '中' '高' '低' '高' '中' '中' '中' '高' '低' '高' '低' '中' '中' '低' '高' '中'......
print("预测值和真实值的对比是:\n", y_pre==y_test)
预测值和真实值的对比是:[ True  True  True  True  True  True  True False  True  True  True  TrueTrue False False  True  True  True  True  True  True  True  True  TrueFalse False  True  True  True  True False False False  True  True  True......

准确度计算

score = revenue_predict.score(x_test, y_test)
print(score)
0.7883333333333334

下面我们可以看准确度是否满足咱们的业务需求,后续可以更新超参数或者调整算法、算法调优等方式来提高准确度。

后记

当然真正的机器学习项目可能会更复杂一些,比如图表分析,超参数调优,损失函数优化等等。这里给大家展示一下机器学习的骨干流程。

通过电影票房预测来一览机器学习一般流程相关推荐

  1. PyTorch深度学习实战 | 基于深度学习的电影票房预测研究

    基于深度学习的映前票房预测模型(Cross&Dense网络结构模型),该模型通过影片基本信息如:电影类型.影片制式.档期和电影的主创阵容和IP特征等信息对上映影片的票房进行预测. 本篇采用45 ...

  2. 数据到底如何搞定电影票房预测?

    转载自:http://www.dataguru.cn/article-4071-1.html 摘要: 基于对搜索行为.社交媒体等数据的深入分析,可以测量亿万用户的情绪变化.描绘用户的行为模式.挖掘用户 ...

  3. 电影票房预测-kaggle项目Python项目

    研究问题:如何根据电影上映前的一些信息来预测出该电影的票房. 数据来源 数据主要是电影数据库中的 7000 多部过去电影的元数据.提供的数据信息包括演员,工作人员,情节关键词,预算,海报,发布日期,语 ...

  4. 基于机器学习xgboost 线性回归 随机森林 的电影票房预测 完整数据+代码

    运行参考:https://www.bilibili.com/video/BV1U24y1g7at/?spm_id_from=333.999.0.0 完整代码+数据:

  5. 基于机器学习的电影票房分析与预测系统

    温馨提示:文末有 CSDN 平台官方提供的博主 Wechat / QQ 名片 :) 1. 项目简介 票房作为衡量电影能否盈利的重要指标受诸多因素共同作用影响且其影响机制较为复杂,电影票房的准确预测是比 ...

  6. 基于Python机器学习算法的电影推荐系统以及票房预测系统

    电影数据分析 目录 电影数据分析 1 一..实验概述 1 1.1 实验标 1 1.2 .实验完成情况 1 二..电影特征的可视化分析 2 电影票房预测 9 2.1 Data Augmentation ...

  7. 人工智能概述、人工智能发展历程、人工智能主要分支、机器学习工作流程、完整机器学习项目的流程、机器学习算法分类、独立同分布、模型评估、深度学习简介

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 1.1 人工智能概述 1 人工智能应用场景 2 人工智能小案例 ...

  8. 一部电影能否大卖?用机器学习来精准预测吧

    全文共6962字,预计学习时长14分钟 图片来源:https://unsplash.com/@jakobowens1 电影数据库(TMDB)为电影数据提供了一个API,人们可以从该数据库中下载数据.那 ...

  9. 【大数据分析专业毕设之基于python爬虫的电影票房大数据预测分析+大屏可视化分析

    [大数据分析专业毕设之基于python爬虫的电影票房大数据预测分析+大屏可视化分析-哔哩哔哩https://b23.tv/saIKtBH flask web框架,数据使用requests模块爬取数据, ...

最新文章

  1. 绝密 | 机器学习老手不会轻易告诉你的12件事儿
  2. 在IE中测试调用Web Service
  3. python新增练习(二)
  4. ios推送服务,php服务端
  5. ReactNative(API)Alert
  6. 统计vs机器学习,数据领域的“少林和武当”!
  7. 【hive】hive常见的几种文件存储格式与压缩方式的结合-------Parquet格式+snappy压缩 以及ORC格式+snappy压缩文件的方式
  8. freyja 将引入另外一项功能大幅提高服务器性能
  9. 游戏美术基础(一):游戏贴图
  10. Java开发从零开始!java游戏服务器开发教程
  11. 学软件测试有前途吗?发展前景怎么样?
  12. 计算机工资表2017,2017事业单位工资标准表
  13. 一日精通python编程_爱上Python 一日精通Python编程 [Learn Python in One Day and Learn it Well ]...
  14. 肽核酸(PNA)偶联穿膜肽(CCPs)(KFF)3K形成CCPs-PNA|肽核酸的使用方法
  15. 在计算机上配置dns,常见设备和系统上配置DNS的方法DNS服务器 -电脑资料
  16. 在线圆型针织内衣机织物CAD系统设计
  17. 模拟退火算法(Simulated Annealing,SA)MATLAB案例详细解析
  18. RNN学习笔记3-LSTM
  19. 学习伯克利CS 61A课程(Structure and Interpretation of Computer Programs, SICP)的相关资源
  20. 太阳能热水器两芯液位温度检测

热门文章

  1. Excel下载附件工具类
  2. DIY操作系统(6):特权级CPL、DPL与RPL
  3. 物联网如何推动制造业迈向“工业4.0”?
  4. 光伏-储能并网系统仿真(MATLAB/SIMULINK)-part1
  5. 显卡html5性能测试工具,电脑显卡性能测试软件
  6. 服务器自定义防火墙,windows服务器防火墙设置自定义规则
  7. mysql 谓语提前_表语谓语提前是什么倒装把这两种提前是部分倒装还是完全倒装,还是别的什么倒装?请问...
  8. The Leaky Integrate-and-Fire (LIF) Neuron Mode-LIF神经元模型
  9. 营销互动新玩法——积分商城
  10. 分享:SET“红绳”悬吊运动训练的基本概念