Прогноз популярности события и выбор оптимальной цены билета: ml исследование DATA4

Как устроен культурный рынок Москвы

Исследование: Петр Кузнецов
Автор: Эльвира Слободян
От коммерческого успеха спектакля, шоу, концерта напрямую зависит прибыль организаторов. Опытные режиссеры и именитый актерский состав — залог ожидаемого кассового дохода, но для высокого рейтинга мероприятия этого явно недостаточно. Рассказываем о том, как сократить время и затраты на организацию успешного ивента.

Отправной точкой исследования стажеров команды DATA4 стали мероприятия на различных площадках Москвы. Мы учитывали несколько критериев: описание события и его жанр, географическое положение площадки, актёрский состав. На основе статистики можно составить прогнозы минимальной и максимальной цен билетов, а также кассовых сборов успешного мероприятия.

Оригинальный набор данных собран из открытых источников API Яндекс.Афиша. Мы проанализировали 1744 театральных спектакля с 1 февраля 2020 и на 180 дней вперёд. В статистику вошли 193 уникальных локации и 46 жанров постановок. И вот что нам удалось выяснить.
Тепловая карта по событиям
Какие факторы влияют на цену билета
Как видно из тепловой карты матрицы корреляций, максимальная (event.tickets.price.max) и минимальная (event.tickets.price.min) цены билетов сильно зависят от места проведения события (scheduleInfo.oneOfPlaces.title). Средняя связь (0.2 — <0.4) наблюдается с областью, где проходит мероприятие (geohash), и его жанром (base_genre). Меньше всего (0.1 — <0.2) цена билета зависит от возрастного рейтинга ивента (evevt.contentRating) и типа локации (scheduleInfo.oneOfPlaces.type.name).
Рис.1 Корреляционная матрица
У event.tickets.price.max средняя связь с отзывами, рейтингами и количеством мероприятий в одном месте.

Для оценки уровня взаимосвязи между категориальными признаками мы использовали коэффициент неопределенности Тейла (uncertainty coefficient, entropy coefficient, Theil's U) из пакета dython. В остальных случаях считали корреляцию Пирсона.

Выходит, что основным критерием успеха мероприятия является место его проведения. Грамотно подобранная локация позволит сократить риски провала вашего ивента.
Дополнительная статистика
Самыми дорогими оказались билеты в иммерсивный театр (цена VIP-мест превышает 6 тыс. руб.), самыми дешёвыми — на читку пьес (менее 500 руб.). В ТОП-3 мероприятий с наибольшим количеством голосов вошли «Принцесса цирка», «Очень смешная комедия о том, как Шоу пошло не так» и «Иисус Христос — суперзвезда». Самым популярным жанром ивентов стала драма, на 2-ом месте — детские мероприятия, замкнули тройку лидеров комедии. Больше всего спектаклей состоялось на сцене Театра им. Вахтангова (более 140), другие популярные локации — Театриум на Серпуховке, Театр мюзикла, РАМТ и МХАТ им. М. Горького.
Цены
Рис.2 Цены по категориям событий
Рис.2 Диаграмма размаха MAX и MIN цены билета
Рис.2 Распределение стоимости билетов
Количество голосов оценки мероприятий
Топ 20 мероприятий с наибольшим количеством голосов.
Рис.2 Мероприятия по сборам
Оценки
Топ 20 мероприятий с наибольшим баллом оценки (исключая 0) .
Рис.2 Оценки мероприятий
Жанры
Количество мероприятий по жанрам. Жанры спектаклей очень похожи на жанры фильмов.
Жанры и их количество
Локации
Количество мероприятий в различных местах
Подпишись на рассылку новостей о AI
Только полезные материалы о машинном обучении и искусственном интеллекте. Мы уважительно относимся к нашим читателям и рассылаем письма не чаше 1 раза в неделю!
ТОП-20 мест по количеству спектаклей (в одном месте один спектакль может проходить несколько раз)
Секреты успешного прогноза
Для того чтобы составить точный прогноз по культурным ивентам Москвы, мы решили две задачи. Во-первых, определили критерии, влияющие на стоимость билета, во-вторых, подобрали инструмент для определения MIN/MAX стоимости билетов.

Для первой задачи использовали описательный анализ, включая статистический, анализ категориальных переменных и корреляционный анализ категориальных и числовых признаков.

Для прогнозирования стоимости цены билета применили экспресс-метод 15 основных алгоритмов машинного обучения Scikit learn на исходных необработанных, стандартизованных и нормализованных данных. Настройки каждого алгоритма принимались по умолчанию (default) (за исключением некоторых моментов), чтобы создать равные условия. Код по ссылке.

Линейные алгоритмы:

  • Линейная регрессия / Linear Regression (LR)

  • Гребневая регрессия (ридж-регрессия) / Ridge Regression (R)

  • Лассо-регрессия (от англ. LASSO — Least Absolute Shrinkage and Selection Operator) / Lasso Regression (L)

  • Метод регрессии «Эластичная сеть» / Elastic Net Regression (ELN)

  • Метод наименьших углов / Least Angle Regression (LARS) (LARS)

  • Байесовская гребневая регрессия / Bayesian ridge regression (BR)


Нелинейные алгоритмы:

  • Метод k-ближайших соседей (регрессия) / k-nearest neighbors regressor (KNR)

  • Деревья регрессии / Decision Tree Regressor (DTR)

  • Линейный метод опорных векторов (регрессия) / Linear Support Vector Machine — Regression / (LSVR)

  • Метод опорных векторов (регрессия) / Epsilon-Support Vector Regression (SVR)


Ансамблевые алгоритмы:

  • AdaBoost (регрессия) / AdaBoost Regressor (ABR) (AdaBoost = Adaptive Boosting)

  • Bagging (регрессия) / Bagging Regressor (BR) (Bagging = Bootstrap aggregating)

  • Экстра-деревья (регрессия) / Extra Trees Regressor (ETR)

  • Градиентный boosting (регрессия) / Gradient Boosting Regressor (GBR)

  • Случайный лес (регрессия) / Random Forest Regressor (RFR)


Оценка эффективности каждого алгоритма производилась по R2. Рассчитывалось R2 как среднее значение на тренировочных данных с 10-кратной кросс-валидацией. Для удобства строилась диаграмма размаха.

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


Рис.1 Сравнение алгоритмов по качеству
По результатам проверки взята Байесовская гребневая регрессия (Bayesian ridge regression 'BR'). Запасной вариант — ансамблевый алгоритм Экстра-деревья /регрессия/ (Extra Trees Regressor 'ETR') или Random Forest Regressor.

Дальнейший план работы выглядел так:

  1. Преобразовать данные для максимизации нормальности
  2. Обработать редкие категории и пропуски
  3. Удалить линейные зависимые переменные
  4. Удалить сильно коррелированные переменные
  5. Сконструировать новые признаки
  6. Стандартизировать и дамми-кодировать материалы
  7. Разделить данные

Для перебора гиперпараметров модели чаще используют поиск по сетке и случайный поиск. Первый медленный, но более точный. Второй быстрый, но есть риск упустить важные точки поиска. Применим третий метод на базе байесовской оптимизации и модуля Python Hyperopt.

Попытаемся оптимизировать только некоторые гиперпараметры дерева решений. После работы функции оптимизации выдаются наиболее оптимальные гиперпараметры.

Изначально алгоритм выбирал значения из всего пространства поиска равномерно, но со временем картина поменялась. Получив больше информации о том, как гиперпараметры влияют на целевую функцию, алгоритм все больше фокусировался на тех областях, где он мог достичь оптимума — значений, близких к нулю. Алгоритм по-прежнему исследует все пространство решений, но делает это реже.
Оценка прогнозов после оптимизации параметров hyperopt — на изображении выше. Делаем вывод: на тестовом наборе немного выросло качество прогноза. Задача решена.
Итоги
Проанализировав 1744 театральных спектакля и культурных мероприятия, можно сделать вывод, что на стоимость билета и отзывы зрителей преимущественно влияют организаторы (локация), жанр (иммерсивный театр, рок и т.д.).

И, конечно, людям нравятся «вечные темы», которые можно увидеть в облаке слов из описания событий.
Ожидаемо (или не очень) в заголовках оказалось очень много «сказки», «любви», «жизни» и «истории».
DATA4 - разрабатываем ML решения индивидуально под клиента
Связаться с нами
Напишите контактные данные, чтобы мы связались с вами.