Я очень, очень люблю кино. Для меня это высшая творческая форма искусства. Хороший фильм может отвлечь нас от наших забот на несколько часов и позволить нам опосредованно испытать чужие фантазии или реальности (если вам это нравится). Хороший фильм может даже стереть грань между опытом, полученным из первых рук, и впечатлениями, полученными из вторых рук. Отличный фильм может дать вам чувство катарсиса, которому позавидует футбольный хулиган. А премии «Оскар» — это то, где мы чествуем великие фильмы.
Через серию наград Академия кинематографических искусств и наук сообщает нам, кто является лучшим примером передового опыта в различных аспектах кинопроизводства. Мои личные фавориты — актерские награды. Я стараюсь смотреть каждый фильм, получивший номинацию за актерское мастерство. Моя логика: Великолепные актерские игры делают отличные фильмы.
Признаюсь, до того, как я начал свое путешествие по науке о данных, я не особо задумывался о том, что делает фильм отличным. Но когда ты молоток (или учишься молотку), все выглядит как гвоздь. В данном случае «гвоздь» — это премия «Оскар» за лучший фильм. Это, безусловно, самая престижная награда, которую может получить любой фильм, и поэтому для неспециалиста это самый простой способ выбрать Великий фильм. На самом деле, любой фильм, который даже получает номинацию на эту награду, скорее всего, является Великим фильмом:
И в прошлом были некоторые сомнительные решения: Рокки победил Таксиста. Но все же начинающий специалист по данным во мне верит, что в хаосе есть порядок. Поэтому я отправился на поиски.
Инжиниринг данных
Используя самые лучшие данные о наградах Академии, которые я смог найти, я построил свою разработку фильма, исходя из того, что критики обращают внимание на следующее при рассмотрении фильма: режиссура, сценарий, монтаж, операторская работа, актерское мастерство, продакшн-дизайн и звук. .
Затем я добавил функции «Всего номинаций» и «Название фильма». Первый для подгонки модели, а второй для индексации.
Это позволило создать перекрестную таблицу имени и категории, что вдохновило меня на преобразование моих данных в чисто целочисленный фрейм данных. Это позволило бы мне работать над моей моделью без каких-либо кодировщиков. Хотя код, который я использовал, был несколько неэлегантным (ищите обновления кода в будущем), он был успешным.
После организации моих данных мне нужно было получить базовую линию для моделирования. Поскольку это была проблема классификации с сильно взвешенными значениями, я выбрал ROC AUC в качестве своей метрики. После использования метода заполнения класса большинства (в этом случае я не использовал вероятности, так как мои данные были целыми числами) я получил показатель ROC AUC 0,5. Это было ожидаемо, так как это всегда результат, когда 100% прогнозов являются одним значением. Я также построил кривую ROC.
Моделирование
Наконец пришло время выбирать, подгонять и проверять модель. Я выбрал самую мощную модель классификатора, которую мне было удобно использовать, XGBClassifier. Однако я столкнулся с довольно предсказуемой проблемой. Было менее 100 церемоний вручения премии «Оскар», а это означает, что будет менее 1000 наблюдений (в данном случае «номинантов»). Поскольку общее количество наблюдений (485) было слишком малым для проведения разделения между обучением и оценкой, я остался с перекрестной проверкой.
Затем я получил Feature Importances для модели, и результаты оказались весьма неожиданными. Я думал, что некоторые функции будут иметь больший вес, чем другие, но я был прав лишь частично.
Судя по всему, получение награды за лучшую режиссуру означает долгий путь к тому, чтобы фильм стал лучшим фильмом. Актерские номинации и победы мало что значили для моей модели. Хотя интерпретация моих результатов была очень информативной, я хотел выжать из своей модели все до последней капли точности, поэтому я использовал RandomizedSearchCV, чтобы найти лучшие гиперпараметры для моей модели и лучший показатель ROC AUC. Затем я сопоставил свою модель с этими гиперпараметрами и получил ROC-кривую моей модели.
В этот момент я был доволен своей моделью и своей интерпретацией важности функций модели. Но как хороший специалист по данным, я тоже хотел посмотреть на маленькую картинку и найти значения Шепли для некоторых моих наблюдений. Я просмотрел 2 точных наблюдения и 1 неточное наблюдение, чтобы увидеть, как различные функции повлияли на прогнозы.
Хотя значения Шепли не дают нам много новой информации, мы можем извлечь интересное решение, принятое моделью. Моя модель считает, что получение только одной награды в ночь на «Оскар» снижает шансы фильма на получение награды за лучший фильм. Тем не менее, получение 3 наград повышает ваши шансы на получение «Лучшего фильма».
Заключительные мысли
Таким образом, режиссура является наиболее важной категорией, когда дело доходит до прогнозирования лучшего изображения, модель устанавливает внутренний порог общего количества побед, а кинематография, монтаж и звук почти не имеют значения вообще. Имея в руках эту информацию и эту модель, я думаю, что следующая ночь вручения премии «Оскар» будет намного интереснее, хотя и менее напряженной. Я не могу дождаться!