Каждую минуту мы обрабатываем скорости (и объемы) от тысяч датчиков. Чтобы найти самый быстрый путь в дорожной сети с учетом скорости на каждой дороге в момент времени, когда маршрут пересекает эту дорогу, нам нужно предсказать, какой трафик будет в будущем на каждом временном горизонте. В этом посте мы попробовали два разных способа построения векторов признаков для модели прогнозирования. Цель состояла в том, чтобы выяснить, улучшаются ли прогнозы скорости на некотором датчике X, учитывая текущее состояние соседей датчика X. Вот как выглядел CA 24 East 04.10.2018:

Вот прогноз скорости на CA 24 4 октября за пять минут до каждого периода времени с учетом только текущего состояния каждого отдельного датчика (для прогнозирования скорости на датчике Y за пять минут до любого времени t вектор признаков состоял только из предыдущих скоростей на датчике Y).

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

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

Преимущество включения соседних датчиков в построение модели прогнозирования сохраняется для любого другого временного горизонта, вот сравнение на +35 мин:

Вот снимок прогноза состояния сети на +35 минуте:

Ясно, что в сети пространственно закодирована информация, которая повышает точность прогнозирования, помимо использования состояния каждого датчика по отдельности.

Эти модели прогнозирования представляли собой регрессоры случайного леса (с одинаковыми параметрами) из удивительного пакета Scikit-Learn Python.

Томас Хейли, TallyGo Data Science