Skip to content

Commit 5cad615

Browse files
jr-MSjr-MS
authored andcommitted
fix acrolinx bugs
1 parent f43cc4e commit 5cad615

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ To test out this feature, try this SDK [Notebook](https://github.com/Azure-Sampl
2727

2828
## Multivariate Anomaly Detector APIs Overview
2929

30-
Generally, multivariate anomaly detector includes a set of APIs, covering the whole lifecycle of training and inference. For more details, 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:
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:
3131

3232
| APIs | Description |
3333
| ------------- | ---------------- |
@@ -144,7 +144,7 @@ A sample response is
144144
}
145145
```
146146

147-
The response contains 4 fields, `models`, `currentCount`, `maxCount`, and `nextLink`.
147+
The response contains four fields, `models`, `currentCount`, `maxCount`, and `nextLink`.
148148

149149
* `models` contains the created time, last updated time, model ID, display name, variable counts, and the status of each model.
150150
* `currentCount` contains the number of trained multivariate models.
@@ -213,9 +213,9 @@ The response contains 4 fields, `models`, `currentCount`, `maxCount`, and `nextL
213213

214214
You will receive more detailed information about the queried model. The response contains meta information about the model, its training parameters, and diagnostic information. Diagnostic Information is useful for debugging and tracing training progress.
215215

216-
* `epochIds` indicates how many epochs the model has been trained out of a total of 100 epochs. For example, if the model is still in training status, `epochId` might be `[10, 20, 30, 40, 50]` which means that it has completed its 50th training epoch, and therefore is halfway complete.
216+
* `epochIds` indicates how many epochs the model has been trained out of a total of 100 epochs. For example, if the model is still in training status, `epochId` might be `[10, 20, 30, 40, 50]` , which means that it has completed its 50th training epoch, and therefore is halfway complete.
217217
* `trainLosses` and `validationLosses` are used to check whether the optimization progress converges in which case the two losses should decrease gradually.
218-
* `latenciesInSeconds` contains the time cost for each epoch and is recorded every 10 epochs. In this example, the 10th epoch takes approximately 0.34 seconds. This would be helpful to estimate the completion time of training.
218+
* `latenciesInSeconds` contains the time cost for each epoch and is recorded every 10 epochs. In this example, the 10th epoch takes approximately 0.34 second. This would be helpful to estimate the completion time of training.
219219
* `variableStates` summarizes information about each variable. It is a list ranked by `filledNARatio` in descending order. It tells how many data points are used for each variable and `filledNARatio` tells how many points are missing. Usually we need to reduce `filledNARatio` as much as possible.
220220
Too many missing data points will deteriorate model accuracy.
221221
* Errors during data processing will be included in the `errors` field.
@@ -227,9 +227,9 @@ You could choose the asynchronous API, or the synchronous API for inference.
227227

228228
| Asynchronous API | Synchronous API |
229229
| ------------- | ---------------- |
230-
| More suitable for batch use cases when customers don’t need to get inference results immediately and want to detect anomalies and get results over a longer time period.| When customers want to get inference immediately and want to detect multivariate anomalies in real-time, this API is recommended. Also suitable for customers having difficulties conducting the previous compressing and uploading process for inference. |
230+
| More suitable for batch use cases when customers don’t need to get inference results immediately and want to detect anomalies and get results over a longer time period.| When customers want to get inference immediately and want to detect multivariate anomalies in real time, this API is recommended. Also suitable for customers having difficulties conducting the previous compressing and uploading process for inference. |
231231

232-
To perform asynchronous inference, simply provide the blob source path to the zip file containing the inference data, the start time, and end time.
232+
To perform asynchronous inference, provide the blob source path to the zip file containing the inference data, the start time, and end time.
233233

234234
This inference is asynchronous, so the results are not returned immediately. Notice that you need to save in a variable the link of the results in the **response header** which contains the `resultId`, so that you may know where to get the results afterwards.
235235

@@ -352,11 +352,11 @@ The response contains the result status, variable information, inference paramet
352352
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.
353353
1. `"isAnomaly": false` indicates the current timestamp is not an anomaly.
354354
* `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.
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.
356356
1. `"isAnomaly": true` indicates an anomaly at the current timestamp.
357357
* `severity ` indicates the relative severity of the anomaly and for abnormal data it is always greater than 0.
358358
* `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 as well as diagnosing the root causes.
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.
360360

361361
> [!NOTE]
362362
> A common pitfall is taking all data points with `isAnomaly`=`true` as anomalies. That may end up with too many false positives.
@@ -366,7 +366,7 @@ The response contains the result status, variable information, inference paramet
366366

367367
## (NEW) Inference with synchronous API
368368

369-
With the synchronous API, you can get inference results point by point in real-time, and no need for compressing and uploading task like training and asynchronous inference. Here are some requirements for the synchronous API:
369+
With the synchronous API, you can get inference results point by point in real time, and no need for compressing and uploading task like training and asynchronous inference. Here are some requirements for the synchronous API:
370370
* Need to put data in **JSON format** into the API request body.
371371
* 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.
372372
* Due to payload limitation, the size of inference data in the request body is limited, which support at most `2880` timestamps * `300` variables.
@@ -377,7 +377,7 @@ You submit a bunch of timestamps of multiple variables into in JSON format in th
377377

378378
`https://{endpoint}/anomalydetector/v1.1-preview.1/multivariate/models/{modelId}/last/detect`
379379

380-
A sample request looks like following format, this case is detecting last 2 timestamps (`detectingPoints` is 2) of 3 variables in one synchronous API call.
380+
A sample request looks like following format, this case is detecting last two timestamps (`detectingPoints` is 2) of 3 variables in one synchronous API call.
381381

382382
```json
383383
{
@@ -440,7 +440,7 @@ You will get the JSON response of inference results in real time after you call
440440
| ------------- | ---------------- |
441441
| `interpretation`| This field only appears when a timestamp is detected as anomalous, which contains `variables`, `contributionScore`, `correlationChanges`. |
442442
| `correlationChanges`| This field only appears when a timestamp is detected as anomalous, which included in interpretation. It contains `changedVariables` and `changedValues` that interpret which correlations between variables changed. |
443-
| `changedVariables`| This field will show which variables that have big change in correlation with `variable`. |
443+
| `changedVariables`| This field will show which variables that have significant change in correlation with `variable`. |
444444
| `changedValues`| This field calculates a number between 0 and 1 showing how much the correlation changed between variables. The bigger the number is, the greater the change on correlations. |
445445

446446

0 commit comments

Comments
 (0)