Звезды перестроены: улучшение рейтинговой системы IMDb

Опубликовано: 2022-03-11

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

Я был на одном из самых популярных сайтов для любителей кино, IMDb, который охватывает фильмы со всего мира и любого года. Его знаменитый рейтинг основан на огромной коллекции отзывов. Для этого анализа данных IMDb я решил загрузить всю имеющуюся там информацию, чтобы проанализировать ее и попытаться создать новый, уточненный рейтинг, учитывающий более широкий спектр критериев.

Рейтинговая система IMDb: фильтрация данных IMDb

Мне удалось скачать информацию о 242 528 фильмах, выпущенных в период с 1970 по 2019 год включительно. Информация, которую IMDb дал мне для каждого из них, была следующей: Rank , Title , ID , Year , Certificate , Rating , Votes , Metascore , Synopsis , Runtime , Genre , Gross и SearchYear .

Чтобы иметь достаточно информации для анализа, мне требовалось минимальное количество обзоров на фильм, поэтому первое, что я сделал, это отфильтровал фильмы с менее чем 500 обзорами. В результате получился набор из 33 296 фильмов, и в следующей таблице мы могли видеть сводный анализ его полей:

Поле Тип Нулевой счет Иметь в виду медиана
Классифицировать Фактор 0
Заголовок Фактор 0
Я БЫ Фактор 0
Год Интерн. 0 2003 г. 2006 г.
Сертификат Фактор 17587
Рейтинг Интерн. 0 6.1 6.3
Голоса Интерн. 0 21040 2017
Метаоценка Интерн. 22350 55,3 56
Синопсис Фактор 0
Время выполнения Интерн. 132 104,9 100
Жанр Фактор 0
Валовой Фактор 21415
SearchYear Интерн. 0 2003 г. 2006 г.

Примечание. В R Factor относится к строкам. Rank и Gross в исходном наборе данных IMDb такие, например, из-за тысяч разделителей.

Прежде чем приступить к уточнению оценки, мне пришлось дополнительно проанализировать этот набор данных. Во-первых, поля Certificate , Metascore и Gross содержат более 50 % пустых значений, поэтому они бесполезны. Ранг неразрывно зависит от Рейтинга (переменной, которую нужно уточнять), поэтому он не несет никакой полезной информации. То же самое верно и для ID в том смысле, что это уникальный идентификатор для каждого фильма.

Наконец, Title и Synopsis — это короткие текстовые поля. Их можно было бы использовать с помощью какой-нибудь техники НЛП, но поскольку это ограниченный объем текста, я решил не учитывать их в этой задаче.

После этого первого фильтра у меня остались Genre , Rating , Year , Votes , год SearchYear и время Runtime . В поле « Genre » для каждого фильма указано более одного жанра, разделенных запятыми. Поэтому, чтобы уловить аддитивный эффект наличия множества жанров, я преобразовал его, используя однократное кодирование. В результате появилось 22 новых логических поля — по одному для каждого жанра — со значением 1, если фильм относится к этому жанру, или 0 в противном случае.

Анализ данных IMDb

Чтобы увидеть корреляции между переменными, я вычислил матрицу корреляции.

Матрица корреляции между всеми оставшимися исходными столбцами и столбцами нового жанра. Числа, близкие к нулю, приводят к появлению пробелов в сетке. Отрицательные корреляции приводят к красным точкам, а положительные корреляции к синим точкам. Точки тем больше и темнее, чем сильнее корреляция. (Визуальные особенности описаны в основном тексте статьи.)

Здесь значение, близкое к 1, представляет сильную положительную корреляцию, а значение, близкое к -1, — сильную отрицательную корреляцию. По этому графику я сделал много наблюдений:

  • Year и SearchYear абсолютно коррелированы. Это означает, что они, вероятно, имеют одинаковые значения и что наличие обоих равносильно использованию только одного, поэтому я оставил только Year .
  • В некоторых областях ожидалась положительная корреляция, например:
    • Music с Musical
    • Action с Adventure
    • Animation с Adventure
  • То же самое для отрицательных корреляций:
    • Drama против Horror
    • Comedy против Horror
    • Horror против Romance
  • Что касается ключевой переменной ( Rating ), я заметил:
    • Он имеет положительную и важную корреляцию с Runtime и Drama .
    • Он имеет более низкую корреляцию с Votes , Biography и History .
    • Он имеет значительно отрицательную корреляцию с Horror и более низкую отрицательную корреляцию с Thriller , Action , Sci-Fi и Year .
    • У него нет других существенных корреляций.

Казалось, что длинные драмы имеют хорошие рейтинги, а короткие фильмы ужасов — нет. На мой взгляд — у меня не было данных, чтобы проверить это — это не коррелировало с теми фильмами, которые приносят больше прибыли, такими как фильмы Marvel или Pixar.

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

Распределение жанров в рейтинговой системе IMDb

Следующим шагом стал анализ распределения каждого жанра по рейтингу. Для этого я создал новое поле под названием Principal_Genre на основе первого жанра, который появился в исходном поле Genre . Чтобы визуализировать это, я сделал график скрипки.

Сюжет для скрипки, показывающий распределение рейтинга для каждого жанра.

Еще раз я увидел, что Drama коррелирует с высокими рейтингами, а Horror — с более низкими. Однако этот график также показал, что другие жанры имеют хорошие оценки: Biography и Animation . То, что их корреляции не появились в предыдущей матрице, вероятно, было связано с тем, что фильмов этих жанров было слишком мало. Затем я создал частотную шкалу по жанрам.

Гистограмма, показывающая, сколько фильмов каждого жанра было в базе данных. Комедия, драма и боевик имели частоты около 6000 или выше; «Преступление и ужас» превышало 2000 человек; остальные были менее 1000.

По сути, у « Biography и Animation » было очень мало фильмов, как и у « Sport » и « Adult ». По этой причине они не очень хорошо коррелируют с Rating .

Другие переменные в рейтинговой системе IMDb

После этого я начал анализировать непрерывные копеременные: Year , Votes и Runtime . На точечной диаграмме вы можете увидеть связь между Rating и Year .

Точечная диаграмма рейтинга и лет.

Как мы видели ранее, Year , по-видимому, имеет отрицательную корреляцию с Rating : по мере увеличения года дисперсия рейтинга также увеличивается, достигая более отрицательных значений в новых фильмах.

Далее я сделал такой же сюжет для Votes .

Точечная диаграмма рейтингов и голосов.

Здесь корреляция была более четкой: чем больше количество голосов, тем выше рейтинг. Однако у большинства фильмов было не так много голосов, и в этом случае Rating имел большую дисперсию.

Наконец, я посмотрел на отношения с Runtime .

Диаграмма рассеяния между рейтингом и временем выполнения.

Опять же, у нас есть похожая модель, но даже сильнее: более высокое время выполнения означает более высокие оценки, но было очень мало случаев высокого времени выполнения.

Уточнения рейтинговой системы IMDb

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

Я начал с самой простой модели, линейной. Чтобы оценить, какая модель работает лучше, я наблюдал среднеквадратичную (RMSE) и среднюю абсолютную (MAE) ошибки. Это стандартные меры для такого рода задач. Кроме того, они находятся в том же масштабе, что и прогнозируемая переменная, поэтому их легко интерпретировать.

В этой первой модели RMSE был равен 1,03, а MAE — 0,78. Но линейные модели предполагают независимость от ошибок, нулевую медиану и постоянную дисперсию. Если это так, то график «остаточные значения против прогнозируемых» должен выглядеть как бесструктурное облако. Поэтому я решил сделать график, чтобы подтвердить это.

График рассеяния остаточных и прогнозируемых значений.

Я мог видеть, что до 7 в прогнозируемых значениях он имел неструктурированную форму, но после этого значения он имеет четкую форму линейного спуска. Следовательно, предположения модели были плохими, а также у меня было «переполнение» по прогнозируемым значениям, потому что в реальности Rating не может быть больше 10.

В предыдущем анализе данных IMDb с большим количеством Votes Rating улучшился; однако это произошло в нескольких случаях и при огромном количестве голосов. Это может вызвать искажения в модели и привести к переполнению Rating . Чтобы проверить это, я оценил, что произойдет с этой же моделью, удалив поле « Votes ».

Диаграмма рассеяния остаточных и прогнозируемых значений при удалении поля Votes.

Это было намного лучше! Он имел более четкую, неструктурированную форму без прогнозируемых значений переполнения. Поле « Votes » также зависит от активности рецензента и не является особенностью фильмов, поэтому я решил убрать и это поле. Ошибки после его удаления составили 1,06 на RMSE и 0,81 на MAE — немного хуже, но не так сильно, и я предпочел иметь лучшие предположения и выбор функций, чем немного лучшую производительность на моем тренировочном наборе.

Анализ данных IMDb: насколько хорошо работают другие модели?

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

Модель СКО МАЭ
Нейронная сеть 1.044596 0,795699
Повышение 1.046639 0,7971921
Дерево вывода 1.05704 0,8054783
ГАМ 1.0615108 0,8119555
Линейная модель 1.066539 0,8152524
Штрафной линейный рег. 1.066607 0,8153331
КНН 1.066714 0,8123369
Байесовский хребет 1.068995 0,8148692
SVM 1.073491 0,8092725

Как видите, все модели работают одинаково, поэтому я использовал некоторые из них, чтобы проанализировать немного больше данных. Я хотел знать влияние каждого поля на рейтинг. Самый простой способ сделать это — наблюдать за параметрами линейной модели. Но чтобы избежать искажений на них ранее, я масштабировал данные, а затем переобучил линейную модель. Весы были как на фото.

Гистограмма весов линейной модели в диапазоне от почти -0,25 для ужаса до почти 0,25 для драмы.

На этом графике видно, что двумя наиболее важными переменными являются Horror и Drama », где первая оказывает отрицательное влияние на рейтинг, а вторая — положительное. Есть и другие области, которые оказывают положительное влияние, например, Animation и Biography , в то время как Action , Sci-Fi и Year оказывают негативное влияние. Более того, Principal_Genre не оказывает существенного влияния, поэтому гораздо важнее, какие жанры есть в фильме, чем какой из них является основным.

С помощью обобщенной аддитивной модели (GAM) я также смог увидеть более детальное влияние непрерывных переменных, которыми в данном случае был Year .

График зависимости года от s(год) с использованием обобщенной аддитивной модели. Значение s(Year) соответствует кривой, начинающейся около 0,6 в 1970 году, опускающейся ниже 0 в 2010 году и снова увеличивающейся почти до 0 к 2019 году.

Здесь у нас есть кое-что поинтереснее. Хотя рейтинг недавних фильмов действительно был ниже, эффект не был постоянным. Он имеет самое низкое значение в 2010 году, а затем, похоже, «восстанавливается». Было бы интересно узнать, что произошло после того года в кинопроизводстве, что могло привести к такому изменению.

Лучшей моделью оказались нейронные сети, у которых были самые низкие RMSE и MAE, но, как видите, ни одна модель не достигла идеальной производительности. Но это не было плохой новостью с точки зрения моей цели. Имеющаяся информация позволяет мне достаточно хорошо оценить производительность, но этого недостаточно. Есть и другая информация, которую я не смог получить от IMDb, из-за которой Rating отличается от ожидаемого балла в зависимости от Genre , Runtime и Year . Это может быть игра актеров, сценарии фильмов, фотографии и многое другое.

С моей точки зрения, эти другие характеристики действительно важны при выборе того, что смотреть. Меня не волнует, является ли данный фильм драмой, боевиком или научной фантастикой. Я хочу, чтобы в нем было что-то особенное, что-то, что заставляет меня хорошо проводить время, заставляет меня чему-то учиться, заставляет меня размышлять о реальности или просто развлекает меня.

Поэтому я создал новый, уточненный рейтинг, взяв рейтинг IMDb и вычтя прогнозируемый рейтинг лучшей модели. Делая это, я удалял влияние Genre , Runtime и Year и сохранял другую неизвестную информацию, которая для меня гораздо важнее.

Альтернатива рейтинговой системе IMDb: окончательные результаты

Давайте теперь посмотрим, какие 10 лучших фильмов по моему новому рейтингу по сравнению с реальным рейтингом IMDb:

IMDb

Заголовок Жанр Рейтинг IMDb Уточненный рейтинг
Ко то тамо пева приключения, комедия, драма 8,9 1,90
Дипу номер 2 Приключения,Семейный 8,9 3.14
Эль-сеньор-де-лос-анильос: Эль-реторно-дель-рей приключения, драма, фэнтези 8,9 2,67
Эль-сеньор-де-лос-анильос: La comunidad del anillo приключения, драма, фэнтези 8,8 2,55
Анбе Сивам приключения, комедия, драма 8,8 2,38
Хабабам Синифи Татильда приключения, комедия, драма 8,7 1,66
Эль-сеньор-де-лос-анильос: Лас-дос-Торрес приключения, драма, фэнтези 8,7 2,46
Мудры призыва приключения, драма, романтика 8,7 2,34
Интересный приключения, драма, фантастика 8,6 2,83
Волвер аль футуро приключения, комедия, фантастика 8,5 2,32

Мой

Заголовок Жанр Рейтинг IMDb Уточненный рейтинг
Дипу номер 2 Приключения,Семейный 8,9 3.14
Интересный приключения, драма, фантастика 8,6 2,83
Эль-сеньор-де-лос-анильос: Эль-реторно-дель-рей приключения, драма, фэнтези 8,9 2,67
Эль-сеньор-де-лос-анильос: La comunidad del anillo приключения, драма, фэнтези 8,8 2,55
Колах гермези ва песар кхале приключения, комедия, семейный 8.1 2,49
Эль-сеньор-де-лос-анильос: Лас-дос-Торрес приключения, драма, фэнтези 8,7 2,46
Анбе Сивам приключения, комедия, драма 8,8 2,38
Лос-кабальерос-де-ла-меса-куадрада приключения,комедия,фэнтези 8.2 2,35
Мудры призыва приключения, драма, романтика 8,7 2,34
Волвер аль футуро приключения, комедия, фантастика 8,5 2,32

Как видите, подиум кардинально не изменился. Это было ожидаемо, потому что RMSE был не таким высоким, а здесь мы наблюдаем вершину. Давайте посмотрим, что произошло с десяткой худших:

IMDb

Заголовок Жанр Рейтинг IMDb Уточненный рейтинг
Holnap Tortent - Надя бульварфильм Комедия,Мистика 1 -4,86
Джумали Джебер: Аллах Сени Альсин Комедия 1 -4,57
Баданг Комедия,Фэнтези 1 -4,74
Йиийрик!!! Космическая номинация Комедия 1.1 -4,52
Гордый американец Драма 1.1 -5,49
Коричневые мундиры: Война за независимость Боевики,Научная фантастика,Война 1.1 -3,71
Выходные, которыми он живет комедия, ужасы, мистика 1,2 -4,53
Боливар: герой Анимация,Биография 1,2 -5,34
Восстание черной летучей мыши Боевики,Научная фантастика 1,2 -3,65
Хацукой Драма 1,2 -5,38

Мой

Заголовок Жанр Рейтинг IMDb Уточненный рейтинг
Гордый американец Драма 1.1 -5,49
Санта и кролик-мороженое Семейный,Фэнтези 1,3 -5,42
Хацукой Драма 1,2 -5,38
Рейс биография,драма 1,5 -5,35
Боливар: герой Анимация,Биография 1,2 -5,34
Ханум и Рангга: Вера и город Драма, Романтика 1,2 -5,28
После прошлого сезона Анимация,Драма,Научная фантастика 1,7 -5,27
Баршель - Морд в Генфе Драма 1,6 -5,23
Расшу райфу Драма 1,5 -5,08
Камифусен Драма 1,5 -5,08

То же самое произошло и здесь, но теперь мы видим, что в уточненном случае появляется больше дорам, чем на IMDb, что показывает, что рейтинг некоторых дорам может быть завышен только потому, что они драмы.

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

Заголовок Рейтинг IMDb Уточненный рейтинг Разница
Канашими но берадонна 7.4 -0,71 8.11
Хесусристо Суперзвезда 7.4 -0,69 8.09
Пинк Флойд стена 8.1 0,03 8.06
Тэнси но тамаго 7.6 -0,42 8.02
Джибон Теке Нея 9.4 1,52 7,87
Эль Бейле 7,8 0,00 7,80
Санта и три медведя 7.1 -0,70 7,80
La alegre historia де Скрудж 7,5 -0,24 7,74
Пиль де Асно 7 -0,74 7,74
1776 г. 7.6 -0,11 7,71

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

Что вы думаете о фильмах, которые занимают место в этом новом показателе? Они тебе нравятся? Или предпочитаете оригинальные? Позвольте мне знать в комментариях ниже!