怎么从导演及演员判断电影值不值得看?

首先,本文的数据下载自IMDB 5000 Movie Dataset From Kaggle**
原作者爬取了IMDB 5000多条观测数据,然后用回归对IMDB各个电影的评分进行建模,作者的文章如下:
Predict Movie Rating - NYC Data Science Academy Blog**
本文主要借助该数据完成大数据分析第4讲复杂数据和分析的作业,对该讲的内容和知识点练练手。

导入相关包

library(ggplot2)
library(stringr)
library(dplyr)

数据导入

#当前项目运行根路径
#例如:G:/DataCruiser/workspace/IMDB Analysis
projectPath <- getwd()
#movie_metadata.csv路径
#例如G:/DataCruiser/workspace/IMDB Analysis/data/movie_metadata.csv
servicePath <- str_c(projectPath, "data", "movie_metadata.csv", sep = "/")
#导入数据
movies <- read.csv(servicePath, header = T, stringsAsFactors = F)

导演与电影评分数据处理

disDirector <- function(){
#选择子集
  mymovies <- select(movies, 
                     title_year, 
                     imdb_score, 
                     director_facebook_likes, 
                     actor_1_facebook_likes) 
#列名重命名,等号左边是新列名,右边是就列名 
  mymovies <- rename(mymovies, 
                     year = title_year, 
                     scores = imdb_score, 
                     direcotrlikes = director_facebook_likes, 
                     actorlikes = actor_1_facebook_likes)
#删除缺失数据 
 mymovies <- filter(mymovies, 
                    !is.na(year), 
                    !is.na(scores), 
                    !is.na(direcotrlikes), 
                    !is.na(actorlikes)) 
#数据排序 
 mymovies <- arrange(mymovies, desc(year)) 
#数据计算:facebook上导演点赞数与相应导演所导的电影IMDB评分数之间的关系  
 disDirector <- mymovies %>% 
          group_by(year) %>% 
               summarise( count = n(), 
                          mean_scores = mean(scores, na.rm = TRUE), 
                          mean_likes = mean(direcotrlikes, na.rm = TRUE) ) 
                          %>% filter(count > 0) 
          return(disDirector)
}

演员与电影评分数据处理

disActor <- function(){ 
#选择子集
 mymovies <- select(movies, 
                    title_year, 
                    imdb_score, 
                    director_facebook_likes, 
                    actor_1_facebook_likes)
 #列名重命名,等号左边是新列名,右边是就列名
 mymovies <- rename(mymovies, 
                    year = title_year, 
                    scores = imdb_score, 
                    direcotrlikes = director_facebook_likes, 
                    actorlikes = actor_1_facebook_likes)
 #删除缺失数据 mymovies <- filter(mymovies, 
                                 !is.na(year),
                                 !is.na(scores),
                                 !is.na(direcotrlikes), 
                                 !is.na(actorlikes))
 #数据排序 mymovies <- arrange(mymovies, desc(year))
 #数据计算:facebook上一号演员点赞数与相应导演所导的电影IMDB评分数之间的关系  
 disActor <- mymovies %>% 
       group_by(year) %>% 
       summarise( count = n(), 
                  mean_scores = mean(scores, na.rm = TRUE),
                  mean_likes = mean(actorlikes, na.rm = TRUE) )
                      %>% filter(count > 0) 
       return(disActor)
}

导演与评分图形绘制

#导演评分散点图
directorView <- ggplot(data = disDirector) + 
                geom_point(mapping = aes(x = mean_likes, y = mean_scores))+ 
                geom_smooth(mapping = aes(x = mean_likes, y = mean_scores))

结果如下:

movieScore vs direcetorLikes.jpg

演员与评分图形绘制

#演员评分散点图
actorView <- ggplot(data = disActor) + 
             geom_point(mapping = aes(x = mean_likes, y = mean_scores))+ 
             geom_smooth(mapping = aes(x = mean_likes, y = mean_scores))

结果如下:

movieScore vs actorLikes.jpg

结果保存

#保存分析结果
outputpath <- str_c(projectPath,"output","movieScore vs direcetorLikes.jpg",sep="/")
ggsave(filename=outputpath, plot=directorView)
#保存分析结果
outputpath <- str_c(projectPath,"output","movieScore vs actorLikes.jpg",sep="/")
ggsave(filename=outputpath, plot=actorView)

结果分析

在假定IMDB评分高低决定着电影好坏的前提下,从对IMDB 5000多条的数据分析可以初步得到以下结论:

  • 总体上看导演在facebook上面获得的点赞数与电影的好坏呈现正相关,而一号演员在facebook获得的点赞数与电影的好坏呈负相关,通过导演的好坏来判断一部电影的好坏往往更加靠谱;
  • 有一些非主流的导演虽然在facebook上获得的点赞数不多,但是也不排除会拍出一些好电影的可能性。

需要说明一定的是,在对于count较少的数据这里没有剔除,如果设置不同的噪音门槛得出的结论略有不同,特别是演员的趋势上,得出的结论会变化较大。
另外,本文的源码以及输出结果均已经上传到:
jijiwhywhy/IMDB-Analysis

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容