Обсудите различные методы машинного обучения для анализа и прогнозирования показателей веб-службы и ее приложений.

Обзор

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

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

Начиная…

Что такое временной ряд?

Временные ряды - это набор точек данных, собранных с постоянными интервалами времени. Примеры данных временных рядов могут варьироваться от показателей приложения, таких как частота запросов в RPM, до системных показателей, таких как процент простоя ЦП, взятых через постоянные интервалы времени.

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

Для иллюстрации я использовал Python. Модули Numpy, Pandas, Matpoltlib будут использоваться для преобразования и анализа, а S tatsmodel будет использоваться для прогнозной модели.

Предварительная обработка данных

Посмотрите на график частоты запросов в оборотах в минуту выше, вы видите какие-либо проблемы с данными?

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

Как с этим справиться?

* Передискретизация: все точки данных были получены с минутным интервалом. Повторная выборка данных на ежечасные, ежедневные или еженедельные может помочь уменьшить количество точек данных, с которыми нужно работать. В этом примере мы будем использовать среднесуточные пересчитанные значения.

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

Временной ряд Basic

Одномерный против. Многопараметрические временные ряды
Одномерные временные ряды состоят только из одной переменной. Одномерный анализ - это простейшая форма анализа данных, при которой анализируемые данные содержат только одну переменную. Поскольку это единственная переменная, она не имеет отношения к причинам или взаимосвязям. Примером этого одномерного временного ряда могут быть показатели частоты запросов.
Если временной ряд состоит из двух переменных, он называется двумерным временным рядом. Анализ этого типа данных имеет дело с причинами и взаимосвязями, а анализ проводится для выяснения взаимосвязи между двумя переменными. Примером этого может быть% использования ЦП веб-службы, которое зависит от частоты запросов. Эти переменные часто отображаются по осям X и Y на графике для лучшего понимания данных, причем одна из этих переменных является независимой, а другая - зависимой.
Многомерные временные ряды состоят из трех или более переменные. Примером многомерных временных рядов могут быть цены на акции, которые будут зависеть от нескольких переменных.

Компоненты временных рядов
Чтобы создать подходящую модель для прогнозирования временных рядов, важно понимать компоненты данных временных рядов. Данные временных рядов в основном состоят из следующих компонентов:

  • Тренд
    Тренд показывает общую тенденцию данных к увеличению или уменьшению в течение длительного периода времени. Тренд - это плавная, общая, долгосрочная, средняя тенденция. Не всегда обязательно, чтобы увеличение или уменьшение происходило в одном и том же направлении в течение заданного периода времени. Скорость запросов к веб-сервису может показывать какие-то тенденции изменения в течение длительного периода времени.
  • Сезонность
    . Это краткосрочные колебания данных, связанные с сезонными факторами. Краткосрочный период обычно рассматривается как период, в течение которого происходят изменения во временном ряду. Например. веб-служба электронной коммерции может получать больше трафика в определенные месяцы.
  • Цикл
    . Это долгосрочные колебания, возникающие во временном ряду.
  • Ошибка
    . Это случайные или нерегулярные движения во временном ряду. Это внезапные изменения, происходящие во временном ряду, повторение которых маловероятно.

Добавка против. Мультипликативная модель

Простая модель декомпозиции может быть:
Аддитивной моделью: Y [t] = T [t] + S [t] + e [t]]
Мультипликативной моделью: Y [t] = Т [t] * S [t] * e [t]

Где Y [t] - прогнозируемое значение в момент времени t, T [t], S [t] и e [t] - составляющая тренда, сезонная составляющая и ошибка во время t соответственно.

Стационарные серии

Временной ряд называется стационарным, если он имеет постоянные статистические свойства во времени, т. Е. следующий:

  • постоянное среднее значение
  • постоянная дисперсия
  • автоковариация, не зависящая от времени.

Большинство моделей временных рядов требуют, чтобы временной ряд был стационарным.

Как проверить стационарность временного ряда?

Вот несколько способов проверить стационарность временного ряда:

  • Скользящая статистика
    Мы можем построить скользящую среднюю или скользящую дисперсию, чтобы проверить изменение во времени. Например. График скользящего среднего количества запросов в минуту за 7 дней. Это визуальный прием.
  • Тест Дики-Фуллера
    Это один из статистических тестов для проверки стационарности. Это разновидность теста единичного корня. Результаты теста включают статистику теста и некоторые критические значения для различий уровней достоверности. Если «Статистика теста» меньше «Критического значения», мы можем отклонить нулевую гипотезу и сказать, что ряд является стационарным. Здесь нулевая гипотеза состоит в том, что временной ряд нестационарен.

Как сделать временной ряд стационарным?

Есть несколько способов сделать временной ряд стационарным. Некоторые из них - дифференцирование, устранение тренда, преобразование и т. Д.

Подгонка и оценка моделей

Я в общих чертах расскажу о двух типах прогнозных моделей: математических моделях и искусственных нейронных сетях.

Математические модели

Некоторые из классических моделей прогнозирования временных рядов упомянуты ниже. Я проиллюстрирую модель SARIMA для нашего сценария.

Такие модели, как AR, MA, ARMA, ARIMA, являются тривиальными случаями модели SARIMA. VAR, VARMA, VARMAX похожи на ранее упомянутые модели, они полезны в случае векторных данных, а не одномерных временных рядов.

В некоторых случаях модель Холта-Винтера может использоваться для прогнозирования временных рядов с присутствующей сезонной составляющей.

Модель SARIMA

Когда во временном ряду присутствуют тренд и сезонность, очень популярным методом является использование модели S easonal AutoRegressive Integrated Moving Average (SARIMA), которая является обобщением модели ARMA.

Модель SARIMA обозначается SARIMA (p, d, q) (P, D, Q) [S], где

  • p, q относятся к условиям авторегрессии и скользящего среднего для модели ARMA.
  • d - это степень различия (количество раз, когда из данных вычитались прошлые значения).
  • P, D и Q относятся к условиям авторегрессии, дифференцирования и скользящего среднего для сезонной части модели ARIMA.
  • S означает количество периодов в каждом сезоне.

Оценка параметров модели

* Для модели SARIMA (p, d, q) (P, D, Q) [S] нам нужно оценить 7 параметров.

* Из сезонной декомпозиции мы увидели, что данные временных рядов имеют сезонность. Следовательно, S = 365 и означает отставание в 365 дней в сезонных изменениях.

* Для параметров p, q, P и Q мы можем построить график ACF (функция автокорреляции) и PACF (функция частичной автокорреляции), а для параметров d & D мы можем попробовать те же самые графики с различиями во временных рядах.

* Другой способ оценить параметры - это попробовать несколько наборов значений, чтобы найти модель, для которой значение AIC (информационный критерий Акаике) относительно меньше.

* Приблизительные параметры модели: SARIMA (2, 1, 4) (0, 1, 0) [365]

Разделение наборов данных для обучения и тестирования

Как и в случае с другими моделями машинного обучения, для оценки точности модели мы разбиваем набор данных на обучающие и тестовые наборы. Это соотношение может варьироваться от 60% до 90%. В нашем случае из-за меньшего количества точек данных я сохраняю соотношение 95%. Еще одна причина для сохранения отношения 95% заключается в том, что для точного прогнозирования модели SARIMA в наборе обучающих данных должно быть достаточно точек данных за 2 сезона.

Подгонка модели

Подбираемые данные представляют собой временные ряды с повторной выборкой и преобразованием дневного среднего значения. Для модели вызываются расчетные параметры (2, 1, 4) (0, 1, 0) [365]. Обратите внимание, что значение AIC составляет -296,90 для этой модели.

Прогнозирование

Теперь, когда модель обучена, мы можем выполнять прогноз. Для этого мы можем указать количество шагов, которые нужно спрогнозировать в качестве параметра.

Примечание. Обратите внимание на значения на оси Y на исходном графике в начале статьи и на прогнозируемом графике, упомянутом выше. Значения RPM для веб-службы составляли около 300, а прогнозируемые значения - около 5, это связано с преобразованием прогнозируемых значений. Нам нужно применить обратное преобразование, чтобы получить значение в исходном масштабе. Можете ли вы угадать, какое обратное преобразование будет подходящим на основе примененного преобразования?

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

Проверка прогноза

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

Для этого нам нужно найти ошибки между исходными и прогнозируемыми тестовыми значениями для вычисления:
* среднеквадратичная ошибка (MSE)
* среднеквадратичная ошибка Ошибка (RMSE)
* Коэффициент вариации
* Квартильный коэффициент дисперсии и т. Д.

Поскольку в нашем наборе данных было всего 39 точек данных, мы сможем оценить прогноз на 39 дней. Давайте оценим модель для 39 дней и 20 дней, чтобы сравнить результаты.

Прогноз на 39 дней

Примечание. Коэффициент вариации составляет 11,645, что означает, что модель смогла спрогнозировать среднесуточный RPM для службы с точностью 88% на следующие 39 дней.

Прогноз на 20 дней

Примечание. Коэффициент вариации составляет 5,55, что означает, что модель смогла спрогнозировать среднесуточный RPM для службы с точностью 94% на следующие 20 дней.

Нейронные сети

Модели нейронных сетей для задач, основанных на прогнозировании, работают иначе, чем математические модели. Рекуррентная нейронная сеть (RNN) - это класс искусственной нейронной сети, который демонстрирует временное динамическое поведение.

LSTM (Long Short-Term Memory) - один из наиболее подходящих RNN. Для разработки модели LSTM проблема прогнозирования временных рядов должна быть переформулирована как проблема контролируемого обучения.

Заключение

  • Для прогнозирования определенных показателей, таких как время ответа для веб-службы, потребуются очень эффективные модели для прогнозирования данных временных рядов в реальном времени .
  • С каждой метрикой связана подходящая степень детализации временного шага. Для прогнозирования времени отклика подходящая степень детализации временного шага должна составлять секунды или минуты. В то время как для автоматического масштабирования может быть достаточно прогнозирования ежедневных оборотов в минуту.
  • Подходящую модель следует выбирать при прогнозировании сложных показателей, включающих многовариантные временные ряды, такие как Использование ЦП в% или замена дисков. поскольку это может быть не одномерный временной ряд, и на его значение должно влиять несколько переменных.
  • Прогнозирующая модель, разработанная для прогнозирования одной метрики, может не подходить для другой метрики.
  • Точность моделей можно повысить, обучив модели на больших наборах данных и точно настроив параметры модели.

Дальнейшее чтение