Дождь или солнце: что влияет на почасовое использование велосипеда?
В велосипедном сообществе есть поговорка: Плохой погоды не бывает, есть только плохо одетые гонщики. Велосипедисты Capital Bikeshare в Вашингтоне получили памятку, потому что единственное, что останавливает велосипедистов округа Колумбия, - это время суток. Согласно моему анализу данных Capital Bikeshare за 2011–2012 годы, пять основных критериев, определяющих почасовую посещаемость, следующие:
- Какое сейчас время дня? имеет смысл, поскольку зарегистрированные водители чаще всего пользуются им во время утренних и вечерних поездок (см. ниже).
2. Какая температура? как температура, так и температура на ощупь.
3. Какой сейчас год? Кажется странным, и я согласен. Поскольку данные были собраны сразу после запуска Capital Bikeshare в 2010 году, между 2 и 3 годами наблюдался значительный рост пользователей. Когда программа становится зрелой, я не ожидал, что это будет важной переменной.
4. Лето, осень, зима или весна? Больше людей хотят кататься весной, а не зимой. Ага.
5. Это рабочий день или выходные? В основном это связано с тем, что люди ежедневно добираются до работы и с работы.
Это 5 основных факторов, наиболее важным из которых является час дня. График ниже показывает относительную важность различных факторов для почасовой оплаты велосипеда.
Я пришел к этим результатам, используя технику, называемую «регрессия случайного леса». Если вы когда-либо играли в игру «20 вопросов» в детстве, вы интуитивно понимаете, как это работает. «20 вопросов» - это игра, в которой один человек думает о случайном предмете, а другой человек должен угадать, что это такое, задавая только 20 вопросов или меньше, задавая только вопросы «да» или «нет». Обычно в 20 вопросах вы сначала задаете серьезные вопросы, например: «Это больше, чем коробка из-под обуви?» стараться как можно быстрее исключить как можно больше вещей, прежде чем сузить круг вопросов.
Дерево решений, которое представляет собой одно дерево в случайном лесу, работает точно так же. Вы статистически разделяете данные пополам, используя по одной переменной на каждом листе дерева или вопросе. Это очень мощная техника, потому что после 20 разделений у вас будет 2 ², или 1 миллион возможностей.
Например, всего за 3 решения я могу создать дерево решений, которое дает мне 8 различных оценок в диапазоне от 19 до 353 велосипедов, используемых в течение данного часа. Давайте взглянем.
Алгоритм дерева решений начинается с предположения о 192 велосипедах (верхнее поле), что представляет собой среднее количество велосипедов, используемых в любой случайный момент. Затем он разделяет первый лист дерева решений следующим образом:
- Это до 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 простыми факторами, из которых наиболее важным является время суток:
- Какое сейчас время суток?
- Какая температура?
- Какой сейчас год?
- Сейчас лето, осень, зима или весна?
- Это рабочий день или выходные?
В следующий раз, когда вы захотите прокатиться на велосипеде, вместо того, чтобы проверять погоду, посмотрите на часы!