Рекомендации по использованию API обнаружения аномалийBest practices for using the Anomaly Detector API

API обнаружения аномалий — это служба обнаружения аномалий без отслеживания состояния.The Anomaly Detector API is a stateless anomaly detection service. Точность и производительность его результаты могут повлиять на:The accuracy and performance of its results can be impacted by:

  • Как выполняется подготовка данных временных рядов.How your time series data is prepared.
  • Параметры API обнаружения аномалий, которые были использованы.The Anomaly Detector API parameters that were used.
  • Количество точек данных в запросе API.The number of data points in your API request.

Воспользуйтесь этой статьей, чтобы узнать о рекомендациях по использованию API получения наилучших результатов для данных.Use this article to learn about best practices for using the API getting the best results for your data.

Когда следует использовать пакет (всего) или последнюю версию (последнее) точки обнаружения аномалийWhen to use batch (entire) or latest (last) point anomaly detection

Конечная точка обнаружения пакетной службы API обнаружения аномалий позволяет обнаруживать аномалии через всего времени данные ряда.The Anomaly Detector API's batch detection endpoint lets you detect anomalies through your entire times series data. В этом режиме обнаружения одной статистической модели создается и применяется к каждой точке в наборе данных.In this detection mode, a single statistical model is created and applied to each point in the data set. Если ваши временные ряды содержат описанными ниже характеристиками, мы рекомендуем использовать обнаружение пакетной службы для предварительного просмотра данных в одном вызове API.If your time series has the below characteristics, we recommend using batch detection to preview your data in one API call.

  • Сезонного временного ряда случайных аномалии.A seasonal time series, with occasional anomalies.
  • Неизменность временных рядов, с помощью случайные пики и спады.A flat trend time series, with occasional spikes/dips.

Не рекомендуется использовать обнаружение аномалий пакетной службы для данных в реальном времени, или его использование в данных временных рядов, у которых выше характеристиками.We don't recommend using batch anomaly detection for real-time data monitoring, or using it on time series data that doesn't have above characteristics.

  • Пакет обнаружения создает и применяет только одну модель, для каждой точки выполняется в контексте весь ряд.Batch detection creates and applies only one model, the detection for each point is done in the context of whole series. Если время рядов данных вверх и вниз без сезонных колебаний, некоторые точки изменения тенденций (частные интерфейсы и пики данных) могут быть пропущены в модели.If the time series data trends up and down without seasonality, some points of change (dips and spikes in the data) may be missed by the model. Аналогично некоторые моменты, изменения, которые являются менее важно, чем те, которые позже в наборе данных не может считаться как настолько значительная, что должна быть включена в модель.Similarly, some points of change that are less significant than ones later in the data set may not be counted as significant enough to be incorporated into the model.

  • Обнаружение пакета выполняется медленнее, чем обнаружение аномалий состояние последней точки, при выполнении мониторинга данных в режиме реального времени, из-за количество точек выполняется анализ.Batch detection is slower than detecting the anomaly status of the latest point when doing real-time data monitoring, because of the number of points being analyzed.

Для мониторинга данных в режиме реального времени, мы рекомендуем, обнаружение аномалий состояние только последние точки данных.For real-time data monitoring, we recommend detecting the anomaly status of your latest data point only. Применяя постоянно последнюю точку обнаружения, потоковая передача данных мониторинга можно сделать более эффективный и точный.By continuously applying latest point detection, streaming data monitoring can be done more efficiently and accurately.

В приведенном ниже примере описывается влияние этих режимов обнаружения может оказать на производительность.The example below describes the impact these detection modes can have on performance. На первом рисунке показаны результат постоянно обнаружение аномалий состояние последней точки вдоль точек 28 ранее данных.The first picture shows the result of continuously detecting the anomaly status latest point along 28 previously seen data points. Красные точки являются аномалии.The red points are anomalies.

Рисунок, демонстрирующий обнаружение аномалий с помощью последней точки

Ниже приведен тот же набор данных, с помощью пакетной службы обнаружения аномалий.Below is the same data set using batch anomaly detection. Модель создается для операции, пропущен несколько аномалии, помеченные прямоугольниками.The model built for the operation has ignored several anomalies, marked by rectangles.

Рисунок, демонстрирующий обнаружение аномалий, используя метод пакетной службы

Подготовка данныхData preparation

API обнаружения аномалий принимает временных рядов данных в формате в объект запроса JSON.The Anomaly Detector API accepts time series data formatted into a JSON request object. Временных рядов могут быть любые числовые данные, записанные со временем в последовательном порядке.A time series can be any numerical data recorded over time in sequential order. Windows для данных временных рядов можно отправить в конечную точку API обнаружения аномалий, чтобы повысить производительность интерфейса API.You can send windows of your time series data to the Anomaly Detector API endpoint to improve the API's performance. Минимальное количество точек данных, которую можно отправить равно 12, а максимальный — 8640 точек.The minimum number of data points you can send is 12, and the maximum is 8640 points. Степень детализации определяется как интенсивность данных выборки в.Granularity is defined as the rate that your data is sampled at.

Точки данных, отправляемого в API обнаружения аномалий должны иметь допустимую метку времени в формате UTC (UTC) и числовое значение.Data points sent to the Anomaly Detector API must have a valid Coordinated Universal Time (UTC) timestamp, and numerical value.

{
    "granularity": "daily",
    "series": [
      {
        "timestamp": "2018-03-01T00:00:00Z",
        "value": 32858923
      },
      {
        "timestamp": "2018-03-02T00:00:00Z",
        "value": 29615278
      },
    ]
}

Если с нестандартным интервалом выборки данных, это можно сделать, добавив customInterval атрибута в запросе.If your data is sampled at a non-standard time interval, you can specify it by adding the customInterval attribute in your request. Например если ряды выборка каждые 5 минут, можно добавить следующие на ваш запрос JSON:For example, if your series is sampled every 5 minutes, you can add the following to your JSON request:

{
    "granularity" : "minutely", 
    "customInterval" : 5
}

Отсутствующие точки данныхMissing data points

Отсутствующие точки данных часто используются в наборы данных рядов равномерное распределение времени, особенно те, которые с высокой степенью гранулярности (небольшой интервал выборки.Missing data points are common in evenly distributed time series data sets, especially ones with a fine granularity (A small sampling interval. Например, выбора данных определяет каждые несколько минут).For example, data sampled every few minutes). Отсутствует ожидаемое число точек данных менее 10% не должен содержать негативное влияние на результаты обнаружения.Missing less than 10% of the expected number of points in your data shouldn't have a negative impact on your detection results. Рассмотрите возможность заполнения пропусков в данных с его характеристики, как Подстановка точки данных из более раннего периода, линейную интерполяцию или скользящего среднего.Consider filling gaps in your data based on its characteristics like substituting data points from an earlier period, linear interpolation, or a moving average.

Агрегатные распределенных данныхAggregate distributed data

API обнаружения аномалий, лучше всего работает на равномерно распределенные временных рядов.The Anomaly Detector API works best on an evenly distributed time series. Если ваши данные распределяются случайным образом, вам следует объединить его следует единица измерения времени, например в минуту, ежечасного или ежедневного например.If your data is randomly distributed, you should aggregate it by a unit of time, such as Per-minute, hourly, or daily for example.

Обнаружение аномалий в данных с сезонными закономерностямиAnomaly detection on data with seasonal patterns

Если вы знаете, что данные временных рядов имеет сезоне (по одному, происходящее с регулярными интервалами), может повысить точность и время отклика API.If you know that your time series data has a seasonal pattern (one that occurs at regular intervals), you can improve the accuracy and API response time.

Указание period при создании запроса JSON можно уменьшить задержку обнаружения аномалий на 50%.Specifying a period when you construct your JSON request can reduce anomaly detection latency by up to 50%. period Является принимает целое число, указывающее точки примерно сколько данных временных рядов для повторения шаблон.The period is an integer that specifies roughly how many data points the time series takes to repeat a pattern. Например, временные ряды на одну точку данных в день будет иметь period как 7, и придется временных рядов с одной точкой в час (с одинаковым шаблоном еженедельно) period из 7*24.For example, a time series with one data point per day would have a period as 7, and a time series with one point per hour (with the same weekly pattern) would have a period of 7*24. Если вы не знаете, какие шаблоны в данных, укажите этот параметр не нужно.If you're unsure of your data's patterns, you don't have to specify this parameter.

Для получения наилучших результатов обеспечивают 4 periodэлемента, накопленные точки данных, а также второе.For best results, provide 4 period's worth of data point, plus an additional one. Например, почасовая данных с помощью еженедельных шаблон описанным выше должен предоставить 673 точек данных в тексте запроса (7 * 24 * 4 + 1).For example, hourly data with a weekly pattern as described above should provide 673 data points in the request body (7 * 24 * 4 + 1).

Данные выборки для мониторинга в реальном времениSampling data for real-time monitoring

Если потоки данных осуществляется через короткий промежуток времени (например секунд или минут), отправка Рекомендованное количество точек данных могут превысить API обнаружения аномалий максимальное число разрешенных (8640 точек данных).If your streaming data is sampled at a short interval (for example seconds or minutes), sending the recommended number of data points may exceed the Anomaly Detector API's maximum number allowed (8640 data points). Если данные стабильной сезоне, можно отправить образец данных временных рядов с интервалом большего размера, например часов.If your data shows a stable seasonal pattern, consider sending a sample of your time series data at a larger time interval, like hours. Выборки данных таким образом также заметно повышает время отклика API.Sampling your data in this way can also noticeably improve the API response time.

Следующие шагиNext steps