Пока я приступаю к исследованиям в области науки о данных, я стараюсь узнать как можно больше об анализе временных рядов. Ранее я писал об одномерном анализе временных рядов с использованием Facebook Prophet в форме вопроса о конкуренции Analytics Vidhya, охватывающего компанию JetRail, со ссылкой на него, находящейся ниже: - https://medium.com/python-in- простой-английский / как-я-решил-проблему-временного-ряда-реактивного самолета-с-fb-prophet-441820924c29

В то время как вопрос о конкуренции JetRail охватывал область одномерного анализа временных рядов, я хотел бы немного углубиться в эту тему, обсудив многомерный анализ временных рядов. Чтобы проиллюстрировать, как Facebook Prophet работает с такими данными, я решил использовать другой вопрос о конкурсе, на этот раз от McKinsey Analytics, со ссылкой, находящейся ниже: - https://datahack.analyticsvidhya.com/contest/mckinsey-analytics -хакатон / # Мои публикации

Выдержки из постановки задачи для этого вопроса о конкурсе:

«Вы работаете с правительством, чтобы превратить ваш город в умный город. Видение состоит в том, чтобы превратить его в цифровой и интеллектуальный город, чтобы повысить эффективность услуг для граждан. Одна из проблем, с которыми сталкивается правительство, - это дорожное движение.

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

Чтобы спрогнозировать структуру трафика на каждом из этих четырех перекрестков на следующие 4 месяца.

Датчики на каждом из этих перекрестков собирали данные в разное время, поэтому вы увидите данные о трафике за разные периоды времени. Чтобы усложнить ситуацию, некоторые пересечения предоставили ограниченные или разреженные данные, требующие вдумчивости при создании прогнозов на будущее. В зависимости от исторических данных за 20 месяцев правительство ожидает, что вы предоставите точные прогнозы трафика на ближайшие четыре месяца. Ваш алгоритм станет основой более масштабных преобразований, которые сделают ваш город умным и интеллектуальным ».

Чтобы ответить на этот вопрос о конкурсе, библиотеки Python должны быть загружены в используемый блокнот Jupyter, моей является Google Colab.

CSV-файлы проблемы тоже нужно импортировать в программу. Я лично загрузил файлы и сохранил их в репозитории GitHub, и каждый может использовать эти файлы, если хочет. Ссылка на этот репозиторий находится ниже: - https://github.com/TracyRenee61/Traffic-Forecasting

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

Затем мне пришлось переименовать столбцы, потому что прибыль Facebook очень специфична в названиях столбцов, на которые следует рассчитывать. «DateTime» заменяется на «ds», а «Junction» заменяется на «add1». В машинном обучении цель обычно называется «y», поэтому Пророк хочет видеть именно это имя.

Затем я разделил набор данных поезда для обучения и проверки. При анализе временных рядов разбиение происходит по времени, а не по порядковому номеру.

Затем я определил модель, в данном случае Facebook Prophet. Поскольку он находится в многомерном наборе данных, add_regressor () необходимо реализовать для каждого дополнительного столбца. В этом случае был только один дополнительный столбец. После определения модели мне пришлось подогнать ее и спрогнозировать на основе данных обучения:

Я проверил ошибку этого прогноза с помощью mean_squared_error и получил 30,69: -

Я также построил прогноз, чтобы получить визуальное представление данных проверки в отличие от данных обучения: -

После предсказания на проверочном наборе я предсказал на тестовом наборе:

После того, как прогноз был выполнен, я поместил прогноз и номер идентификатора в фрейм данных. Этот фрейм данных был преобразован в файл .csv, который был сохранен и отправлен в Средство проверки решений на странице конкурса:

Я получил 37,37 балла в Solution Checker с первой попытки, что показывает, что мне нужно проделать еще немного работы, чтобы повысить точность этого вопроса конкурса. Есть еще несколько вещей, которые я могу сделать с FB Prophet, чтобы попытаться уменьшить ошибку, так что следите за этим местом!

Программа, использованная в этом сообщении в блоге, может быть использована полностью. Ее можно найти в моей учетной записи GitHub по ссылке ниже: https://github.com/TracyRenee61/Traffic-Forecasting/blob/main/TS_Traffic_Forecast_FB_Prophet.ipynb