Skip to content

Commit c5c9290

Browse files
committed
address final PR reviewer feedback
1 parent 0a7d2a3 commit c5c9290

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

articles/cognitive-services/Anomaly-Detector/How-to/multivariate-how-to.md

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ The following are the basic steps needed to use MVAD:
2525

2626
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).
2727

28-
## Multivariate Anomaly Detector APIs Overview
28+
## Multivariate Anomaly Detector APIs overview
2929

3030
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:
3131

@@ -57,7 +57,7 @@ Next you need to prepare your training data (and inference data with asynchronou
5757
[!INCLUDE [mvad-data-schema](../includes/mvad-data-schema.md)]
5858

5959

60-
## Train an MVAD model.
60+
## Train an MVAD model
6161

6262
Here is a sample request body and the sample code in Python to train an MVAD model.
6363

@@ -349,22 +349,24 @@ The response contains the result status, variable information, inference paramet
349349
* `variableStates` lists the information of each variable in the inference request.
350350
* `setupInfo` is the request body submitted for this inference.
351351
* `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.
360362

361363
> [!NOTE]
362364
> A common pitfall is taking all data points with `isAnomaly`=`true` as anomalies. That may end up with too many false positives.
363365
> 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.
364366
> Please refer to the [FAQ](../concepts/best-practices-multivariate.md#faq) in the best practices document for the difference between `severity` and `score`.
365367
366368

367-
## (NEW) Inference with synchronous API
369+
## (NEW) inference with synchronous API
368370

369371
> [!NOTE]
370372
> 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
374376
* 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.
375377
* Due to payload limitation, the size of inference data in the request body is limited, which support at most `2880` timestamps * `300` variables.
376378

377-
### Request Schema
379+
### Request schema
378380

379381
You submit a bunch of timestamps of multiple variables into in JSON format in the request body, with an API call like this:
380382

@@ -435,7 +437,7 @@ A sample request looks like following format, this case is detecting last two ti
435437
}
436438
```
437439

438-
### Response Schema
440+
### Response schema
439441

440442
You will get the JSON response of inference results in real time after you call a synchronous API, which contains following new fields:
441443

@@ -533,7 +535,7 @@ See the following example of a JSON response:
533535
}
534536
```
535537

536-
## Next Steps
538+
## Next steps
537539

538540
* [What is the Multivariate Anomaly Detector API?](../overview-multivariate.md)
539541
* [Join us to get more supports!](https://aka.ms/adadvisorsjoin)

0 commit comments

Comments
 (0)