机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)

案例介绍

2018年电影工业蓬勃发展,全球电影票房估值超过400亿美元。哪些电影最赚钱?本案例使用来自The Movie Database的超过7,000部已公映电影的元数据,预测单部电影的全球票房收入。

数据介绍

数据集包括7,398部电影的元数据,每部电影由id确定。数据点包括cast, crew, plot keywords, budget, posters, release dates, languages, production companies, and countries.
你的任务是预测检验集里的4,398部电影的全球票房。注意,由于有些电影被翻拍后上映,因此数据集里可能存在一部电影的多个实例。然而,它们实际上是不同的电影。

数据加载

加载必需的库

import numpy as np
import pandas as pd
pd.set_option('max_columns', None)
import matplotlib.pyplot as plt
import seaborn as sns
import ast
plt.style.use('ggplot')
import datetime
import lightgbm as lgb
from scipy import stats
from scipy.sparse import hstack, csr_matrix
from sklearn.model_selection import train_test_split, KFold
from wordcloud import WordCloud
from collections import Counter
from nltk.corpus import stopwords
from nltk.util import ngrams
from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer
from sklearn.preprocessing import StandardScaler

加载数据集

train = pd.read_csv('../input/train.csv')
test = pd.read_csv('../input/test.csv')dict_columns = ['belongs_to_collection', 'genres', 'production_companies','production_countries', 'spoken_languages', 'Keywords', 'cast', 'crew']def text_to_dict(df):for column in dict_columns:df[column] = df[column].apply(lambda x: {} if pd.isna(x) else ast.literal_eval(x) )return dftrain = text_to_dict(train)
test = text_to_dict(test)
print(train.head())

print(train.shape)
print(test.shape)

(3000, 23)

(4398, 22)

在训练集有3000个样本,一些列变量包括字典列表。现在,我们从这些列提取数据。

belongs_to_collection

for i, e in enumerate(train['belongs_to_collection'][:5]):print(i, e)

train['belongs_to_collection'].apply(lambda x: len(x) if x != {} else 0).value_counts()

belongs_to_collection里,有2396个空值,604个包含信息。

train['collection_name'] = train['belongs_to_collection'].apply(lambda x: x[0]['name'] if x != {} else 0)
train['has_collection'] = train['belongs_to_collection'].apply(lambda x: len(x) if x != {} else 0)test['collection_name'] = test['belongs_to_collection'].apply(lambda x: x[0]['name'] if x != {} else 0)
test['has_collection'] = test['belongs_to_collection'].apply(lambda x: len(x) if x != {} else 0)train = train.drop(['belongs_to_collection'], axis=1)
test = test.drop(['belongs_to_collection'], axis=1)

genres

for i, e in enumerate(train['genres'][:5]):print(i, e)

print('Number of genres in films')
train['genres'].apply(lambda x: len(x) if x != {} else 0).value_counts()

现在,我们看一看genres, 画出它的词云。

list_of_genres = list(train['genres'].apply(lambda x: [i['name'] for i in x] if x != {} else []).values)
plt.figure(figsize = (12, 8))
text = ' '.join([i for j in list_of_genres for i in j])
wordcloud = WordCloud(max_font_size=None, background_color='white', collocations=False,width=1200, height=1000).generate(text)
plt.imshow(wordcloud)
plt.title('Top genres')
plt.axis("off")
plt.show()

Drama, Comedy and Thriller是流行的genres.

有很多描述电影的关键词,我们用词云查找最普遍的词。

list_of_keywords = list(train['Keywords'].apply(lambda x: [i['name'] for i in x] if x != {} else []).values)
plt.figure(figsize = (16, 12))
text = ' '.join(['_'.join(i.split(' ')) for j in list_of_keywords for i in j])
wordcloud = WordCloud(max_font_size=None, background_color='black', collocations=False,width=1200, height=1000).generate(text)
plt.imshow(wordcloud)
plt.title('Top keywords')
plt.axis("off")
plt.show()

电影票房预测问题:如何使用Python生成词云相关推荐

  1. python 词云_利用Python生成词云

    利用Python生成词云 一.第三方库的安装与介绍 1.1  Python第三方库jieba(中文分词) 1.介绍 "结巴"中文分词:做最好的 Python 中文分词组件. 2.特 ...

  2. Hadoop3.0基础平台搭建(三节点),以及案例运行并使用python生成词云

    一.设备配置列表,软件包 二.主机名映射 三.生成密钥 四.将密钥发送到各个节点 五.注意事项及验证 六.关闭防火墙和SeLinux安全模块(所有主机均需操作 七.解压JDK.hadoop包,设置Ja ...

  3. python词云改颜色_一种用Python生成词云

    一种用Python生成词云 我们在阅读一篇很长的文章时,总先看看文章的关键词来获知文章的大概内容.今天我们就来制作一个词云程序,将文章中出现次数较多的词语提取出来,生成一张词云图. 词云图的生成原理: ...

  4. python制作词云时出现figure1 figure2_用Python生成词云

    词云是一种数据可视化技术,用于表示文本数据,其中每个单词的大小表示其出现的频率或重要性. 可以使用词云突出显示重要的文本数据点. 词云被广泛用于分析来自社交网络网站的数据. 为了在Python中生成词 ...

  5. python生成词云很慢吗_词云制作没那么难,Python 10 行代码就实现了!

    写在前面 想必大家有一个问题.什么是词云呢? 词云又叫名字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略 ...

  6. python生成词云_词云制作没那么难,Python 10 行代码就实现了!

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信"学习资料"可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 写在前面 想必大家有一个问 ...

  7. python 生成词云

    #/usr/bin/env python # *-*coding:utf-8 *-* #模块介绍https://amueller.github.io/word_cloud/ #python 3.5.2 ...

  8. Python生成词云的制作

    本文出自博客Vander丶CSDN博客,如需转载请标明出处,尊重原创谢谢 博客地址:http://blog.csdn.net/l540675759/article/details/61236376 什 ...

  9. 如何使用python生成词云并透明背景的词云?

    首先是我们需要用到的两个库,一个是wordcloud用于生成词云,还有一个是jieba(外号:结巴)用于进行中文的分词,如果你制作的图云中不包含中文,那么可以不用下载结巴. 环境报错解决思路 如果你是 ...

  10. 使用python生成词云——聆心云心理健康服务平台数据可视分析和可视化

    实验题目:聆心云心理健康服务平台数据可视分析和可视化 实验目的和要求:统计出在聆心云平台做沙盘游戏的次数.根据各次沙盘游戏所使用的沙具和进行的操作数据进行词云可视化,掌握Python词云制作方法 实验 ...

最新文章

  1. Redis实战(2)安装和试用
  2. 2015人脸检测研究进展
  3. 开源特训营 - Lesson 6 - 如何提交一个合格的PR
  4. ionic 页面传值问题
  5. wh计算公式_“笔记本”电池里的mAh和Wh有啥区别
  6. 建议0 不要让main函数返回void
  7. PHP实现折半查询算法
  8. python语法学习第九天--else和with语句
  9. 机器人控制学习机器编程代码_机器学习正在征服显式编程
  10. 【matlab笔记】寻找极小值
  11. linux centos 回收站,centos下实现回收站功能
  12. zblog mysql修改_MySQL_网上下载的Zblog模板怎么修改?,      终于下 - phpStudy
  13. 《七哥说道》第八章:约在410,北漂可还行?
  14. PyTorch中 detach() 、detach_()和 data 的区别
  15. 基于C++的Qt网络编程——基于 IP 多播的网络会议程序
  16. Win 10-jdk 8 下载和安装步骤
  17. 软件分享系列之【AE 下载安装】并持续分享中...
  18. javascript bool 强制类型转换
  19. 免费/中文/功能强大的Modbus调试软件:MThings
  20. wifi连接速率 linux,Deepin linux 操作系统提高 WiFi 速度

热门文章

  1. 基于W5500+Yeelink的远程灯光控制设计
  2. 请教大家一个问题,有关于数据库的设计
  3. ssh与tcp wappers
  4. 网管学习日记-ospf认证
  5. NetDevOps常用数据库python实战-influxDB_grafana
  6. HCIE Security 防火墙转发流程及相关知识点 备考笔记(幕布)
  7. MySQL MHA详解(二)——实战配置
  8. 【译】你不知道的 Chrome 调试工具技巧 第二十三天:Drawer tips 后续
  9. Java中,异常处理try catch的作用域是局部的
  10. Direcshow相关资料