Najlepsze rozwiązania dotyczące korzystania z interfejsu API wykrywanie anomaliiBest practices for using the Anomaly Detector API

Interfejs API usługi Wykrywanie anomalii jest usługa wykrywania anomalii bezstanowe.The Anomaly Detector API is a stateless anomaly detection service. Niezawodność i wydajność jej wynik może mieć wpływ na:The accuracy and performance of its results can be impacted by:

  • Jak przygotować danych szeregów czasowych.How your time series data is prepared.
  • Parametry interfejsu API wykrywanie anomalii, które były używane.The Anomaly Detector API parameters that were used.
  • Liczba punktów danych w Twoim żądaniu interfejsu API.The number of data points in your API request.

Aby poznać najlepsze rozwiązania dotyczące korzystania z interfejsu API, uzyskania najlepszych rezultatów dla swoich danych, należy użyć w tym artykule.Use this article to learn about best practices for using the API getting the best results for your data.

Kiedy należy używać usługi batch (całkowity) lub najnowsze (ostatnia) wskazują wykrywania anomaliiWhen to use batch (entire) or latest (last) point anomaly detection

Punktu końcowego wykrywania usługi batch API wykrywanie anomalii pozwala wykrywać nieprawidłowe stany, przez cały czas serii danych.The Anomaly Detector API's batch detection endpoint lets you detect anomalies through your entire times series data. W tym trybie wykrywania pojedynczego modelu statystyczne jest utworzony i zastosowane do każdego punktu w zestawie danych.In this detection mode, a single statistical model is created and applied to each point in the data set. Jeśli Twoje szeregów czasowych ma pod cech, zaleca się przy użyciu wykrywania usługi batch, aby wyświetlić podgląd danych w jednym wywołaniu interfejsu API.If your time series has the below characteristics, we recommend using batch detection to preview your data in one API call.

  • Szeregów czasowych sezonowe, za pomocą okazjonalne anomalii.A seasonal time series, with occasional anomalies.
  • Płaski trend szeregów czasowych, z okazjonalne wzrostów/spadku.A flat trend time series, with occasional spikes/dips.

Nie zaleca się przy użyciu wykrywania anomalii w usłudze batch dla danych w czasie rzeczywistym, monitorowania lub korzystania z niego w danych szeregów czasowych, która nie ma powyżej właściwości.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.

  • Wykrywanie Batch tworzy i stosuje tylko jeden model, wykrywania dla każdego punktu odbywa się w kontekście całej serii.Batch detection creates and applies only one model, the detection for each point is done in the context of whole series. Czas serii trendy danych górę i w dół bez sezonowości, punktów niektóre zmiany (adresy DIP i gwałtowny wzrost danych) mogą zostać pominięci przez model.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. Podobnie niektóre punkty zmian, które są mniej istotne niż te, które później w zestawie danych nie mogą być liczone jako tyle znaczące, należy włączyć do modelu.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.

  • Wykrywanie partii jest mniejsza niż wykrywania anomalii stan najnowszego punktu, w trakcie monitorowania danych w czasie rzeczywistym, ze względu na liczbę punktów analizowane.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.

Do monitorowania danych w czasie rzeczywistym, firma Microsoft zaleca, wykrywanie anomalii stan tylko najnowsze punktu danych.For real-time data monitoring, we recommend detecting the anomaly status of your latest data point only. Stosując stale ostatnie wykrywanie punktu, przesyłanie strumieniowe danych monitorowania może odbywać się bardziej wydajne i dokładne.By continuously applying latest point detection, streaming data monitoring can be done more efficiently and accurately.

W poniższym przykładzie opisano wpływ tych trybów wykrywania może mieć na wydajność.The example below describes the impact these detection modes can have on performance. Pierwsze obraz przedstawia wynik stale wykrywania anomalii stan najnowszego punktu wzdłuż punktów danych poprzednio oglądaną 28.The first picture shows the result of continuously detecting the anomaly status latest point along 28 previously seen data points. Czerwony punkty są anomalie.The red points are anomalies.

Obraz przedstawiający wykrywanie anomalii przy użyciu najnowszego punktu

Poniżej znajduje się ten sam zestaw danych przy użyciu wykrywania anomalii w usłudze batch.Below is the same data set using batch anomaly detection. Model tworzony dla operacji został zignorowany kilka anomalie, oznaczony za prostokąty.The model built for the operation has ignored several anomalies, marked by rectangles.

Obraz przedstawiający wykrywanie anomalii przy użyciu metody usługi batch

Przygotowywanie danychData preparation

Interfejs API usługi Wykrywanie anomalii akceptuje szeregów czasowych dane sformatowane do obiektu żądania JSON.The Anomaly Detector API accepts time series data formatted into a JSON request object. Szeregi czasowe może być dowolnym dane liczbowe, zapisywane wraz z upływem czasu, w kolejności sekwencyjnej.A time series can be any numerical data recorded over time in sequential order. Windows danych szeregów czasowych może wysyłać do punktu końcowego interfejsu API wykrywanie anomalii, aby zwiększyć wydajność interfejsu API.You can send windows of your time series data to the Anomaly Detector API endpoint to improve the API's performance. Minimalna liczba punktów danych, który można wysłać to 12, a wartość maksymalna to 8640 punktów.The minimum number of data points you can send is 12, and the maximum is 8640 points. Poziom szczegółowości jest zdefiniowany jako szybkość, z jaką dane są próbkowane tak, w.Granularity is defined as the rate that your data is sampled at.

Punktów danych wysłanych do interfejsu API wykrywanie anomalii musi mieć prawidłową sygnaturę czasową uniwersalnego czasu koordynowanego (UTC), a wartość liczbową.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
      },
    ]
}

Jeśli dane są próbkowane tak, w odstępach czasu niestandardowej, możesz je określić, dodając customInterval atrybutów w żądaniu.If your data is sampled at a non-standard time interval, you can specify it by adding the customInterval attribute in your request. Na przykład serii są próbkowane co 5 minut, można dodać następujące do żądania JSON:For example, if your series is sampled every 5 minutes, you can add the following to your JSON request:

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

Brak punktów danychMissing data points

Brak punktów danych są wspólne w zestawach danych serii czasu równomierną dystrybucję, szczególnie te, które z zapewniającym dużą szczegółowość (interwał próbkowania małe.Missing data points are common in evenly distributed time series data sets, especially ones with a fine granularity (A small sampling interval. Adapterem, dane próbkowane co kilka minut).For example, data sampled every few minutes). Brak mniej niż 10% oczekiwanej liczby punktów danych, nie powinny mieć negatywny wpływ na wyniki wykrywania.Missing less than 10% of the expected number of points in your data shouldn't have a negative impact on your detection results. Należy wziąć pod uwagę wypełnianie luki w oparciu o jego cechy, takie jak podstawianie punktów danych w poprzednim okresie, interpolacji liniowej lub średniej ruchomej danych.Consider filling gaps in your data based on its characteristics like substituting data points from an earlier period, linear interpolation, or a moving average.

Agregowanie danych rozproszonychAggregate distributed data

Interfejs API usługi Wykrywanie anomalii sprawdza się najlepiej w szeregu czasowego równomierną dystrybucję.The Anomaly Detector API works best on an evenly distributed time series. Jeśli Twoje dane są losowo rozproszone, możesz powinien agregować je przez jednostkę czasu, takich jak na minutę, godzinową lub dzienną na przykład.If your data is randomly distributed, you should aggregate it by a unit of time, such as Per-minute, hourly, or daily for example.

Wykrywanie anomalii w danych ze wzorcami sezonowychAnomaly detection on data with seasonal patterns

Jeśli wiesz, że szeregami czasowymi ma wzorcu sezonowym, (jeden, który występuje w regularnych odstępach czasu), można zwiększyć dokładność i czasu odpowiedzi interfejsu 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.

Określanie period podczas konstruowania żądania JSON może zmniejszyć opóźnienie wykrywania anomalii nawet o 50%.Specifying a period when you construct your JSON request can reduce anomaly detection latency by up to 50%. period Jest liczba całkowita określająca punkty około ile danych szeregów czasowych zajmuje się do powtarzania wzorca.The period is an integer that specifies roughly how many data points the time series takes to repeat a pattern. Na przykład miałby szeregów czasowych z jeden punkt danych na dzień period jako 7, muszą szeregów czasowych z jednym punktem na godzinę (przy użyciu tego samego wzorca co tydzień) period z 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. Jeśli masz pewności co do wzorców swoje dane, nie trzeba określenia tego parametru.If you're unsure of your data's patterns, you don't have to specify this parameter.

Aby uzyskać najlepsze wyniki, należy podać 4 periodużytkownika, przez które punktu danych, a także drugą.For best results, provide 4 period's worth of data point, plus an additional one. Na przykład co godzinę danych za pomocą wzorca co tydzień zgodnie z powyższym opisem powinny dostarczyć 673 punktów danych w treści żądania (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).

Dane z próbkowania dla monitorowania w czasie rzeczywistymSampling data for real-time monitoring

Jeśli dane przesyłania strumieniowego są próbkowane tak, w krótkich odstępach czasu (w sekundach lub minutach), wysyłając zalecana liczba punktów danych może przekroczyć API wykrywanie anomalii maksymalna liczba dozwolonych (8640 punkty danych).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). Jeśli dane pokazuje stabilny wzorcu sezonowym, należy wziąć pod uwagę wysyłania próbkę danych szeregów czasowych w większych odstępach czasu, takich jak godziny.If your data shows a stable seasonal pattern, consider sending a sample of your time series data at a larger time interval, like hours. Próbkowanie danych w ten sposób może również znacznie poprawić czas odpowiedzi interfejsu API.Sampling your data in this way can also noticeably improve the API response time.

Następne krokiNext steps