Сегодня, как могли заметить пользователи из Москвы, на главной странице Яндекса появился новый информер — прогноз балла пробок. Он призван помочь автомобилистам планировать свои передвижения.
Появляется информер, когда хотя бы один раз за следующие пять часов ожидается три или больше баллов. Его показания обновляются каждые 10 минут.
Чтобы сделать такой предсказатель, мы наняли несколько финалистов «Битвы экстрасенсов» и посадили их вокруг команды Пробок — по вершинам пентаграммы.
Родилась эта функциональность, как и многие, из гипотезы — вечерние пробки напрямую зависят от дня недели, месяца и утренних пробок (большинству приехавших в центр нужно будет возвращаться обратно). Для проверки гипотезы мы решили использовать нейронную сеть. Если просто, то нейронная сеть — это некий «чёрный ящик», которому задаёшь известные факторы и условия, а он их обрабатывает и выдаёт решение задачи. Более серьёзные определения можно найти в словарях. Такие сети используются, например, для распределения веб-трафика между серверами или управления городскими светофорами.
Для эксперимента мы взяли общедоступную библиотеку искусственных нейронных сетей FANN. Мы обучили сеть при помощи двухлетнего архива Яндекс.Пробок и получили первые результаты. После сравнения прогноза с реальностью стало понятно, что гипотеза подтвердилась. И тут разговор зашёл о погоде, но не потому что все темы исчерпались.
Ни для кого не секрет, что на дорожную ситуацию в городе влияют осадки. Если идёт дождь или снег, водители ждут беды. Мы взяли архив погоды и переобучили сети с учетом данных об осадках, изменении температуры и давления за два года. Кстати, в процессе изучения предсказания балла мы заметили один удивительный на первый взгляд факт. Информация о том, выпадут осадки или нет, гораздо меньше влияет на точность прогноза, чем количество миллиметров ртутного столба и градусов по Цельсию. Что, собственно, логично, ведь осадки зависят от этих двух показателей, а сами показатели гораздо точнее, чем «местами возможен дождь».
После добавления данных о погоде точность прогноза улучшилась, и мы задумались о самом продукте. Изначально мы собирались прогнозировать только вечерние пробки утром. Но потом подумали, что это слишком узко. И решили предсказывать весь день — с самого утра и на пять часов вперёд.
Чтобы снизить вероятность ошибки, мы рассчитываем прогноз сразу в трёх независимых нейронных сетях, которые обучались отдельно друг от друга. На главной странице отображается округлённое среднеарифметическое их результатов.
Конечно, этот информер — не точный измерительный прибор. Он показывает, в каком направлении будет развиваться ситуация. Вероятность предсказания балл в балл сейчас варьируется в среднем от 60 до 77% — угадать получается тем лучше, чем ближе будущее к настоящему.
Команды главной страницы и Пробок,
Пять часов тому вперёд