Дождь или солнце: что влияет на почасовое использование велосипеда?

В велосипедном сообществе есть поговорка: Плохой погоды не бывает, есть только плохо одетые гонщики. Велосипедисты Capital Bikeshare в Вашингтоне получили памятку, потому что единственное, что останавливает велосипедистов округа Колумбия, - это время суток. Согласно моему анализу данных Capital Bikeshare за 2011–2012 годы, пять основных критериев, определяющих почасовую посещаемость, следующие:

  1. Какое сейчас время дня? имеет смысл, поскольку зарегистрированные водители чаще всего пользуются им во время утренних и вечерних поездок (см. ниже).

2. Какая температура? как температура, так и температура на ощупь.

3. Какой сейчас год? Кажется странным, и я согласен. Поскольку данные были собраны сразу после запуска Capital Bikeshare в 2010 году, между 2 и 3 годами наблюдался значительный рост пользователей. Когда программа становится зрелой, я не ожидал, что это будет важной переменной.

4. Лето, осень, зима или весна? Больше людей хотят кататься весной, а не зимой. Ага.

5. Это рабочий день или выходные? В основном это связано с тем, что люди ежедневно добираются до работы и с работы.

Это 5 основных факторов, наиболее важным из которых является час дня. График ниже показывает относительную важность различных факторов для почасовой оплаты велосипеда.

Я пришел к этим результатам, используя технику, называемую «регрессия случайного леса». Если вы когда-либо играли в игру «20 вопросов» в детстве, вы интуитивно понимаете, как это работает. «20 вопросов» - это игра, в которой один человек думает о случайном предмете, а другой человек должен угадать, что это такое, задавая только 20 вопросов или меньше, задавая только вопросы «да» или «нет». Обычно в 20 вопросах вы сначала задаете серьезные вопросы, например: «Это больше, чем коробка из-под обуви?» стараться как можно быстрее исключить как можно больше вещей, прежде чем сузить круг вопросов.

Дерево решений, которое представляет собой одно дерево в случайном лесу, работает точно так же. Вы статистически разделяете данные пополам, используя по одной переменной на каждом листе дерева или вопросе. Это очень мощная техника, потому что после 20 разделений у вас будет 2 ², или 1 миллион возможностей.

Например, всего за 3 решения я могу создать дерево решений, которое дает мне 8 различных оценок в диапазоне от 19 до 353 велосипедов, используемых в течение данного часа. Давайте взглянем.

Алгоритм дерева решений начинается с предположения о 192 велосипедах (верхнее поле), что представляет собой среднее количество велосипедов, используемых в любой случайный момент. Затем он разделяет первый лист дерева решений следующим образом:

  1. Это до 6 утра? Если сейчас до 6 часов утра, мы предполагаем, что используется 33 велосипеда. Если сейчас после 6 часов утра, мы предполагаем, что это 256.

Это довольно грубый раскол, но для начала вполне разумно. Если до 6 утра, значит, всадников будет немного. Предположим, что сейчас после 6 часов утра.

2. Разве это не 2011 год (он же 2012 год)? Это странная формулировка вопроса, но мы говорим здесь с компьютером. Если это 2011 год, можно предположить, что в эксплуатации находится 192 велосипеда. Если это 2012 год, то лучше всего будет 320. Это имеет смысл, поскольку программа Capital Bikeshare была запущена в 2010 году и находилась в стадии высокого роста, поэтому год имел значение.

3. Это до 8 вечера? Если сейчас до 20:00, можно предположить, что это 353 велосипеда. Если сейчас после 20:00, то можно предположить, что это 161 велосипед. Поскольку большинство пользователей велосипедами являются пассажирами пригородных поездов, логично, что их число быстро уменьшается после 8 часов вечера, когда люди уже находятся дома.

Итак, поехали! Всего за 3 вопроса мы пришли к нашей оценке 353 велосипеда на период с 6 утра до 8 вечера в 2012 году. Очевидно, это не выглядит очень научным, но представьте, что мы проделали этот процесс еще для 20 вопросов, и он начнет получать очень точный.

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

Поэтому я использовал случайный лес со 100 деревьями решений с максимальной глубиной 56 (что эквивалентно заданию 56 вопросов каждому). Оказывается, он очень хорошо предсказывает почасовое использование велосипеда. Вот график, показывающий типичную неделю, где оранжевая линия - это прогнозируемое значение, а синяя линия - фактическое значение. Эта модель попала бы в 20% лучших в конкурсе Kaggle, откуда были взяты эти данные.

Вот ссылка на блокнот Jupyter для тех, кто интересуется деталями реализации.

Итак, это все. Почасовая оплата велопроката определяется 5 простыми факторами, из которых наиболее важным является время суток:

  1. Какое сейчас время суток?
  2. Какая температура?
  3. Какой сейчас год?
  4. Сейчас лето, осень, зима или весна?
  5. Это рабочий день или выходные?

В следующий раз, когда вы захотите прокатиться на велосипеде, вместо того, чтобы проверять погоду, посмотрите на часы!