Временные ряды

Анализ временных рядов - это статистический метод, который имеет дело с данными временных рядов или анализом тенденций. Данные временных рядов означают, что данные находятся в серии определенных периодов времени или интервалов.

Приложения TSA (анализ временных рядов):

  • Распознавание образов
  • Прогноз землетрясения
  • Прогноз погоды
  • Финансовая статистика

и многое другое…

MXnet

Apache MXNet (инкубационный) - это среда глубокого обучения, разработанная для обеспечения эффективности и гибкости. Он позволяет сочетать символьное и императивное программирование для максимальной эффективности и производительности. По своей сути MXNet содержит динамический планировщик зависимостей, который автоматически распараллеливает как символьные, так и императивные операции на лету. Слой оптимизации графа поверх этого делает символьное выполнение быстрым и эффективным с точки зрения памяти. MXNet является портативным и легким, эффективно масштабируемым для нескольких графических процессоров и нескольких компьютеров.

Проблема

с новой элитой и темпами экономического роста более 10 процентов, экология отошла на второй план в Китае, самой густонаселенной стране мира. Растущее загрязнение привело к появлению непригодных для использования водных путей, увеличению числа случаев врожденных дефектов и появлению самого грязного воздуха на Земле. Это настолько противно, что теперь есть слово для этого: «смогпокалипсис».

"Источник"

Давайте начнем!

Код

Весь используемый здесь код доступен в виде записной книжки. Вы можете запустить его прямо в google colab.

Мы начинаем наш ноутбук с установки необходимых компонентов и зависимостей.

В этом руководстве мы будем использовать Пекинский набор данных PM2.5 для обучения и прогнозирования уровней загрязнения (PM2.5).

Загрузите набор данных напрямую с помощью wget:

Импортируйте необходимые модули:

Прочтите данные с помощью панд:

Небольшая обработка данных -

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

  • Отбросьте значения Nan.
  • Этикетка кодирует направление ветра (cbwd)

Быстрая визуализация нашего набора данных:

Мы определяем функцию, которая преобразует наши данные в ряды данных:

немного больше предварительной обработки данных

  • Масштабировать значения в наборах данных до [0,1]
  • Создайте новый набор данных, передав наши данные в указанный выше make_dataset_many_to_one. Здесь мы решили делать запись каждые 24 часа.

Измените форму данных следующим образом:

  • Образцы. Одна последовательность - это один образец. Партия состоит из одного или нескольких образцов.
  • Шаги по времени. Один временной шаг - это одна точка наблюдения в выборке.
  • Возможности. Одна особенность - это одно наблюдение на временном шаге.

Скрытый массив numpy в mxnet.nd.array:

Определите нейронную сеть LSTM:

Затем нам нужно инициализировать модель для устройства (ЦП или ГП).

Теперь нам нужно определить параметры обучения. "Более"

Здесь loss_function используется во время обучения, а mse используется для расчета потерь после каждой эпохи.

Основной цикл обучения:

Потери должны уменьшаться с каждой эпохой, мы тренируем нашу модель на 15 эпох.

Сделайте прогноз по общему набору данных:

Преобразуйте масштабированные прогнозы в фактический размер и сохраните их во фрейме данных:

Визуализируйте предсказание:

Как видите, наша модель довольно хорошо предсказывает завтрашние уровни загрязнения с учетом сегодняшних значений.

Надеюсь, эта статья помогла в ваших поисках.

Запустите этот блокнот в Google Colab