변칙 탐지기 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. 시계열에 다음과 같은 특징이 있는 경우 batch 검색을 사용 하 여 하나의 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.
  • 가끔 급증 하는 급수/dip가 있는 평면 추세 시계열.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. 계절성 하지 않고 시계열 데이터의 추세가 증가 하거나 감소 하는 경우 모델에서 일부 변경 사항 (데이터의 dip 및 스파이크)이 누락 될 수 있습니다.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.

Batch 메서드를 사용 하 여 변칙 검색을 보여 주는 이미지

데이터 준비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 (협정 세계시) 타임 스탬프 및 숫자 값이 있어야 합니다.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.

JSON 요청 period 을 생성할 때를 지정 하면 변칙 검색 대기 시간을 최대 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. 예를 들어, 하루에 한 개의 데이터 요소를 포함 하는 시계열 period7는가 포함 되 고 시간당 한 지점을 포함 하는 시계열 (주간 패턴은 동일)은 period7*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. 예를 들어 위에서 설명한 대로 주간 패턴이 있는 매시간 데이터는 요청 본문 (7 * 24 * 4 + 1)에 673 데이터 요소를 제공 해야 합니다.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