You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/cognitive-services/Anomaly-Detector/How-to/multivariate-how-to.md
+16-14Lines changed: 16 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ The following are the basic steps needed to use MVAD:
25
25
26
26
To test out this feature, try this SDK [Notebook](https://github.com/Azure-Samples/AnomalyDetector/blob/master/ipython-notebook/API%20Sample/Multivariate%20API%20Demo%20Notebook.ipynb).
27
27
28
-
## Multivariate Anomaly Detector APIs Overview
28
+
## Multivariate Anomaly Detector APIs overview
29
29
30
30
Generally, multivariate anomaly detector includes a set of APIs, covering the whole lifecycle of training and inference. For more information, refer to [Anomaly Detector API Operations](https://westus2.dev.cognitive.microsoft.com/docs/services/AnomalyDetector-v1-1-preview-1/operations/DetectAnomaly). Here are the **8 APIs** in MVAD:
31
31
@@ -57,7 +57,7 @@ Next you need to prepare your training data (and inference data with asynchronou
Here is a sample request body and the sample code in Python to train an MVAD model.
63
63
@@ -349,22 +349,24 @@ The response contains the result status, variable information, inference paramet
349
349
*`variableStates` lists the information of each variable in the inference request.
350
350
*`setupInfo` is the request body submitted for this inference.
351
351
*`results` contains the detection results. There are three typical types of detection results.
352
-
1. Error code `InsufficientHistoricalData`. This usually happens only with the first few timestamps because the model inferences data in a window-based manner and it needs historical data to make a decision. For the first few timestamps, there is insufficient historical data, so inference cannot be performed on them. In this case, the error message can be ignored.
353
-
1.`"isAnomaly": false` indicates the current timestamp is not an anomaly.
354
-
*`severity ` indicates the relative severity of the anomaly and for normal data it is always 0.
355
-
*`score` is the raw output of the model on which the model makes a decision, which could be non-zero even for normal data points.
356
-
1.`"isAnomaly": true` indicates an anomaly at the current timestamp.
357
-
*`severity ` indicates the relative severity of the anomaly and for abnormal data it is always greater than 0.
358
-
*`score` is the raw output of the model on which the model makes a decision. `severity` is a derived value from `score`. Every data point has a `score`.
359
-
*`contributors` is a list containing the contribution score of each variable. Higher contribution scores indicate higher possibility of the root cause. This list is often used for interpreting anomalies and diagnosing the root causes.
352
+
353
+
* Error code `InsufficientHistoricalData`. This usually happens only with the first few timestamps because the model inferences data in a window-based manner and it needs historical data to make a decision. For the first few timestamps, there is insufficient historical data, so inference cannot be performed on them. In this case, the error message can be ignored.
354
+
355
+
*`"isAnomaly": false` indicates the current timestamp is not an anomaly.
356
+
* `severity ` indicates the relative severity of the anomaly and for normal data it is always 0.
357
+
* `score` is the raw output of the model on which the model makes a decision, which could be non-zero even for normal data points.
358
+
*`"isAnomaly": true` indicates an anomaly at the current timestamp.
359
+
* `severity ` indicates the relative severity of the anomaly and for abnormal data it is always greater than 0.
360
+
* `score` is the raw output of the model on which the model makes a decision. `severity` is a derived value from `score`. Every data point has a `score`.
361
+
*`contributors` is a list containing the contribution score of each variable. Higher contribution scores indicate higher possibility of the root cause. This list is often used for interpreting anomalies and diagnosing the root causes.
360
362
361
363
> [!NOTE]
362
364
> A common pitfall is taking all data points with `isAnomaly`=`true` as anomalies. That may end up with too many false positives.
363
365
> You should use both `isAnomaly` and `severity` (or `score`) to sift out anomalies that are not severe and (optionally) use grouping to check the duration of the anomalies to suppress random noise.
364
366
> Please refer to the [FAQ](../concepts/best-practices-multivariate.md#faq) in the best practices document for the difference between `severity` and `score`.
365
367
366
368
367
-
## (NEW) Inference with synchronous API
369
+
## (NEW) inference with synchronous API
368
370
369
371
> [!NOTE]
370
372
> In v1.1-preview.1, we support synchronous API and add more fields in inference result for both asynchronous API and synchronous API, you could upgrade the API version to access to these features. Once you upgrade, you'll no longer use previous model trained in old version, you should retrain a model to fit for new fields. [Learn more about v1.1-preview.1](https://westus2.dev.cognitive.microsoft.com/docs/services/AnomalyDetector-v1-1-preview-1/operations/DetectAnomaly).
@@ -374,7 +376,7 @@ With the synchronous API, you can get inference results point by point in real t
374
376
* The inference results are limited to up to 10 data points, which means you could detect **1 to 10 timestamps** with one synchronous API call.
375
377
* Due to payload limitation, the size of inference data in the request body is limited, which support at most `2880` timestamps * `300` variables.
376
378
377
-
### Request Schema
379
+
### Request schema
378
380
379
381
You submit a bunch of timestamps of multiple variables into in JSON format in the request body, with an API call like this:
380
382
@@ -435,7 +437,7 @@ A sample request looks like following format, this case is detecting last two ti
435
437
}
436
438
```
437
439
438
-
### Response Schema
440
+
### Response schema
439
441
440
442
You will get the JSON response of inference results in real time after you call a synchronous API, which contains following new fields:
441
443
@@ -533,7 +535,7 @@ See the following example of a JSON response:
533
535
}
534
536
```
535
537
536
-
## Next Steps
538
+
## Next steps
537
539
538
540
*[What is the Multivariate Anomaly Detector API?](../overview-multivariate.md)
539
541
*[Join us to get more supports!](https://aka.ms/adadvisorsjoin)
0 commit comments