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