Netflix movies data

Знакомство с данными

Работа представляет собой экплораторный анализ данных на основе датасета о фильмах с сайта Netflix с привлечением дополнительных данных от пользователей сервиса. Главный датасет, c которым ведется работа, включает в себя следующие наиболее информативные переменные: title, budget, genre, keywords, overview, popularity, production country, revenue. Дополняют данные такие показатели как rating и movie year.

Исследовательские вопросы

Фильмы каких жанров самые высоко оцениваемые?

top_10_movies = movies_final %>% arrange(-rating) %>% top_n(10, rating)
ggplot(top_10_movies)+
  geom_bar(aes(x = reorder(title, -rating), y = rating, fill = genre), stat = "identity", position = "dodge", color = "black")+
  theme_bw()+
  labs(title = "Топ 10 фильмов по агрегированному рейтингу пользователей\nс указанием жанра", x = "Название фильма", y = "Рейтинг, 0-5")+
  coord_cartesian(ylim=c(4,4.5))+
  scale_y_continuous(breaks = seq(4, 4.5, 0.05))+
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Комментарий

Mожно сказать, что топовые позиции агрегированного рейтинга пользователей занимают фильмы довольно разных жанров, поэтому можно сделать вывод о том, что рекомендовать 1-2 “безпроигрышных” жанра - не получится. Также, топовая десятка фильмов по рейтингу находится в пределах [4.20, 4.35], что является достаточно маленькой вариацией и говорит об определенном успехе данных фильмов, которые, в свою очередь, могут быть рекомендованы к просмотру как “безпроигрышный” вариант в пределах своего жанра.

Что больше ценит пользователь: классика или новинки?

#нормализуем шкалу популярности(не особо помогает):

movies_final <- movies_final %>% mutate(popularity_norm = (popularity - mean(popularity)) / sd(popularity))

movies_final$popularity_norm = round(movies_final$popularity_norm, 2)

top_10_year <- movies_final %>% arrange(-popularity_norm) %>% top_n(10, popularity_norm)
ggplot(top_10_year)+
  geom_bar(aes(x = reorder(title,popularity_norm), y = popularity_norm), stat = "identity", position = position_dodge(), color = "black")+
  geom_label(aes(x = title, y = popularity_norm, label = movie_year))+
  labs(title = "Топ 10 самых популярных фильмов\nс указанием года выпуска", y = "Популярность", x = "Название фильма")+
  ylim(0,13)+
  theme_bw()+
  coord_flip()

Комментарий

Столбчатая диаграмма показывает, что десятка самых популярных фильмов была выпущена в период с 1950х до 2000х. Принимая во внимание тот факт, что старые фильмы могли получить непропорционально большее количество оценок за долго время их существования, нежели новые, мы всё равно можем говорить об их успехе, поскольку популярность является агрегированной метрикой. Тем не менее, возможно сделать предположение о том, что современные фильмы не менее популярны,учитывая временной период рилизов фильмов в датасете (1916-2005).

Какие жанры получают наибольшее финансирование?

movies_budget <- movies_final %>% group_by(genre) %>% summarise(mean_budget = mean(budget, na.rm = T)) %>% arrange(-mean_budget) %>% top_n(10,mean_budget) 

movies_budget$mean_budget = round(movies_budget$mean_budget, 1)
ggplot(movies_budget)+
  geom_bar(aes(x = reorder(genre, -mean_budget), y = mean_budget),stat = "identity", color = "black")+
  theme_bw()+
  geom_label(aes(x = genre, y = mean_budget, label = mean_budget), vjust = -0.1, size = 2.5)+
  theme(axis.ticks = element_blank(), axis.text.y = element_blank())+
  labs(title = "Средний бюджет фильмов с определенным жанром", x = "Жанр фильма", y = "Бюджет")+
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Комментарий

Анимация, Вестерны и Приключения как правило получают самое большое финансирование, в то время как Мистика и Мелодраммы - намного меньшее. Вероятнее всего это связанно с наивысшим зрительским спросом на эти жанры, и поэтому, Анимацию,Вестерны и Приключения можно рекомендовать новым пользователям, о которых ещё не собрано никакой информации, поскольку вероятность, что пользователю понравятся фильмы этих жанров - довольно высокая, по сравнению с рандомной рекомендацией.

Как общая тематика фильма связана с рейтингом?

# Разбиваем слова из слоганов фильмов на токены
movies_keywords_tok <- movies_final %>% 
  unnest_tokens(words, key_words)

# Убираем стоп слова
enstopwords = data.frame(words = stopwords("en"),stringsAsFactors=FALSE)
movies_keywords_tok_nonstop = movies_keywords_tok %>%
    anti_join(enstopwords)

# Убираем другие неинформативные слова
words_bad = c("film","based","director","of","on")
bad = movies_keywords_tok_nonstop %>% filter(words %in% words_bad)

# Финальный датасет с репрезентативными словами
movies_key = movies_keywords_tok_nonstop %>% anti_join(bad, by = "words")
movies_key %>% count(words, sort = TRUE) %>% top_n(10, n) %>% 
ggplot(aes(x = reorder(words, n), y = n))+
  geom_col(color = "black") +
    labs(title = "Топ 10 наиболее распрострaненных ключевых\nслов по тематике фильма", y = "Частота", x = "Ключевое слово") + 
    coord_flip() +
    scale_y_continuous(breaks = 0:60*5)+
    theme_bw()

Комментарий

Как видно из графика, на практике чаще всего снимают про любовные отношения, независимость женщин, секретные убийства и школу :)

Какие фильмы получают самые высокие рейтинги на самом деле?

movies_key_rating = movies_key %>% group_by(words) %>% summarise(mean_rating = mean(rating)) %>% arrange(-mean_rating) %>%  top_n(10, mean_rating)
formattable(movies_key_rating, 
            align =c("c","c"), 
            list(`Indicator Name` = formatter(
              "span", style = ~ style(color = "grey",font.weight = "bold"))))
words mean_rating
cannibalism 4.307535
credits 4.307535
psychological 4.307535
thriller 4.307535
carol 4.302752
charles 4.302752
dickens 4.302752
lesson 4.302752
scrooge 4.302752
ealism 4.284385
enemy 4.284385
independence 4.284385
revolt 4.284385
tyranny 4.284385

Комментарий

Оказывается, самые высокооцениваемые фильмы - это психологические триллеры про каннибализм, фильмы по мотивам Чарльза Дикенса и фильмы про независимость, но только уже не женщин, а народов (слово revolt и tyranny). Неожиданный поворот!

Действительно ли структура сюжета напрямую отражает общую тематику?

movies_overview <- movies_final %>% 
  unnest_tokens(words, overview)

# Убираем стоп слова
enstopwords = data.frame(words = stopwords("en"),stringsAsFactors=FALSE)
movies_overview_nonstop = movies_overview %>%
    anti_join(enstopwords)
movies_overview_nonstop %>% count(words, sort = TRUE) %>% top_n(10, n) %>% 
ggplot(aes(x = reorder(words, n), y = n))+
  geom_col(color = "black") +
    labs(title = "Топ 10 наиболее распростарненных\nслов в описании фильма", y = "Частота", x = "Ключевое слово") + 
    coord_flip() +
    scale_y_continuous(breaks = 0:95*5)+
    theme_bw()

Комментарий

Интересно, что самые частотные слова в описании сюжета едва ли следуют паттерну самых частотных ключевых слов. Стоит заметить, что слово “мужчина” входит в четверку самых частотных слов в описаниях, в то время как слово “женщина” (предыдущий график) - в тройке частотных только по ключевым словам, а в описании сюжета фигурирует не часто. Однако, слова “любовь” и “новый” занимают лидирующие позиции по частотности употребления в обоих случаях. Наконец, в описании сюжета чаще используют более позитивную лексику (“молодость”, “семья”), в то время как в ключевых словах достаточно часто фигурируют “убийство” и “наркотики/лекарства”.

Заключение

Данный анализ был направлен на выявление основных характеристик данныx о фильмах.

Во-первых, пользователи располагают довольно разнообразным вкусом, и поэтому не стоит делать упор на идею рекомендации 1-2 самых популярных жанров.

Во-вторых, существует несколько фильмов, которые можно безпроигрышно рекомендовать в качестве “золотой классики”, но в общем и целом самые популярные фильмы были сняты в конце 1990-х и начале 2000-х. С учетом того, что данный датасет содержит фильмы с 1916 по 2005 годы выпуска, можно сделать вывод, что пользователи ценят как старые, так и современные фильмы.

В-третьих, агрегированная статистика по данным показывает, что Анимация, Вестерны и Приключения являются самыми высокофинансируемыми фильмами. Вероятно, именно на эти жанры есть большой зрительский спрос.

Наконец, следует отметить, что существую смысловые различия между словами, которые наиболее часто употребляются в ключевых словах фильма и описании. Например, в описании чаще всего фигурирует слова “мужчина”, в то время как тэги с ключевыми словами чаще отмеают слово “женщина”.