Quickstart: De Univariate Anomaly Detector-clientbibliotheek gebruiken

Belangrijk

Vanaf 20 september 2023 kunt u geen nieuwe Anomaly Detector-resources maken. De Anomaly Detector-service wordt op 1 oktober 2026 buiten gebruik gesteld.

Bibliotheekreferentiedocumentatiebibliotheek |broncodepakket | (NuGet) |Zoek de voorbeeldcode op GitHub

Ga aan de slag met de Anomaly Detector-clientbibliotheek voor C#. Voer de volgende stappen uit om het pakket te installeren en de algoritmen te gaan gebruiken die door de service worden geleverd. Met de Anomaly Detector-service kunt u afwijkingen in uw tijdreeksgegevens vinden door automatisch de best passende modellen erop uit te voeren, onafhankelijk van bedrijfstak, scenario of gegevensvolume.

Gebruik de Anomaly Detector-clientbibliotheek voor C# om:

  • Anomalieën in uw tijdreeksgegevensset als een batchaanvraag te detecteren
  • De anomaliestatus van het laatste gegevenspunt in uw tijdreeks te detecteren
  • Trendwijzigingspunten in uw gegevensset te detecteren.

Vereisten

  • Een Azure-abonnement - Een gratis abonnement maken
  • De huidige versie van .NET Core
  • Zodra u uw Azure-abonnement hebt, maakt u een Anomaly Detector-resource in Azure Portal om uw sleutel en eindpunt op te halen. Wacht tot deze is geïmplementeerd en selecteer de knop Ga naar resource. U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.

Instellingen

Een nieuwe .NET Core-app maken

Gebruik in een consolevenster (zoals cmd, PowerShell of Bash) de opdracht dotnet new om een nieuwe console-app te maken met de naam anomaly-detector-quickstart. Met deze opdracht maakt u een eenvoudig 'Hallo wereld'-project met één C#-bronbestand: Program.cs.

dotnet new console -n anomaly-detector-quickstart

Wijzig uw map in de zojuist gemaakte app-map. U kunt de toepassing maken met:

dotnet build

De build-uitvoer mag geen waarschuwingen of fouten bevatten.

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

De clientbibliotheek installeren

Installeer in de toepassingsmap de Anomaly Detector-clientbibliotheek voor .NET met de volgende opdracht:

dotnet add package Azure.AI.AnomalyDetector --prerelease

Sleutel en eindpunt ophalen

Als u een aanroep wilt maken voor de Anomaly Detector-service, hebt u de volgende waarden nodig:

Naam van de variabele Waarde
ANOMALY_DETECTOR_ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. Voorbeeldeindpunt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY De WAARDE van de API-sleutel vindt u in de sectie Sleutels en eindpunten bij het onderzoeken van uw resource vanuit De Azure-portal. U kunt KEY1 of KEY2 gebruiken.
DATA_PATH In deze quickstart wordt het request-data.csv bestand gebruikt dat kan worden gedownload uit onze GitHub-voorbeeldgegevens. Voorbeeldpad: c:\\test\\request-data.csv

Ga naar uw resource in Azure Portal. Het eindpunt en de sleutels vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1 of KEY2 gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.

Omgevingsvariabelen maken

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Voorbeeldgegevens downloaden

In deze quickstart wordt het request-data.csv bestand gebruikt dat kan worden gedownload uit onze GitHub-voorbeeldgegevens

U kunt de voorbeeldgegevens ook downloaden door het volgende uit te voeren:

curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv

Afwijkingen detecteren

Open het bestand program.cs in de projectmap en vervang het door de volgende code:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Azure;
using Azure.AI.AnomalyDetector;
using static System.Environment;

namespace anomaly_detector_quickstart
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string endpoint = GetEnvironmentVariable("ANOMALY_DETECTOR_ENDPOINT");
            string apiKey = GetEnvironmentVariable("ANOMALY_DETECTOR_API_KEY");

            var endpointUri = new Uri(endpoint);
            var credential = new AzureKeyCredential(apiKey);

            //create client
            AnomalyDetectorClient client = new AnomalyDetectorClient(endpointUri, credential);

            //read data
            //example: string datapath = @"c:\test\request-data.csv";
            string datapath = @"REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH";

            List<TimeSeriesPoint> list = File.ReadAllLines(datapath, Encoding.UTF8)
                .Where(e => e.Trim().Length != 0)
                .Select(e => e.Split(','))
                .Where(e => e.Length == 2)
                .Select(e => new TimeSeriesPoint(float.Parse(e[1])) { Timestamp = DateTime.Parse(e[0]) }).ToList();

              //create request
            UnivariateDetectionOptions request = new UnivariateDetectionOptions(list)
            {
                Granularity = TimeGranularity.Daily
            };

            UnivariateEntireDetectionResult result = client.DetectUnivariateEntireSeries(request);

            bool hasAnomaly = false;
            for (int i = 0; i < request.Series.Count; ++i)
            {
                if (result.IsAnomaly[i])
                {
                    Console.WriteLine("Anomaly detected at index: {0}.", i);
                    hasAnomaly = true;
                }
            }
            if (!hasAnomaly)
            {
                Console.WriteLine("No anomalies detected in the series.");
            }
        }
    }
}


Belangrijk

Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel over beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.

dotnet run program.cs

Uitvoer

Anomaly detected at index:      3
Anomaly detected at index:      18
Anomaly detected at index:      21
Anomaly detected at index:      22
Anomaly detected at index:      23
Anomaly detected at index:      24
Anomaly detected at index:      25
Anomaly detected at index:      28
Anomaly detected at index:      29
Anomaly detected at index:      30
Anomaly detected at index:      31
Anomaly detected at index:      32
Anomaly detected at index:      35
Anomaly detected at index:      44

Codedetails

Inzicht in uw resultaten

In de bovenstaande code worden de voorbeeldgegevens gelezen en geconverteerd naar een DetectRequest object. We roepen File.ReadAllLines het bestandspad aan en maken een lijst TimeSeriesPoint met objecten en eventuele nieuwe regeltekens. Pak de waarden uit en scheid de tijdstempel van de numerieke waarde en voeg ze toe aan een nieuw TimeSeriesPoint object. Het DetectRequest object bestaat uit een reeks gegevenspunten, met TimeGranularity.Daily als granulariteit (of periodiciteit) van de gegevenspunten. Vervolgens roepen we de methode van DetectEntireSeriesAsync de client aan met het DetectRequest object en wachten we op het antwoord als een EntireDetectResponse object. Vervolgens doorlopen we de waarden van IsAnomaly het antwoord en drukken we alle waarden af die waar zijn. Deze waarden komen overeen met de index van afwijkende gegevenspunten, als die zijn gevonden.

Resources opschonen

Als u een Anomaly Detector-resource wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd. U kunt ook overwegen om de omgevingsvariabelen die u hebt gemaakt te verwijderen als u deze niet meer wilt gebruiken.

Bibliotheekreferentiedocumentatiebibliotheek |broncodepakket | (npm) |Zoek de voorbeeldcode op GitHub

Aan de slag met de Anomaly Detector-clientbibliotheek voor JavaScript. Volg deze stappen om het pakket te installeren en gebruik te maken van de algoritmen die door de service worden geleverd. Met de Anomaly Detector-service kunt u afwijkingen in uw tijdreeksgegevens vinden door automatisch het best passende model erop te gebruiken, ongeacht de branche, het scenario of het gegevensvolume.

Gebruik de Anomaly Detector-clientbibliotheek voor JavaScript om:

  • Anomalieën in uw tijdreeksgegevensset als een batchaanvraag te detecteren
  • De anomaliestatus van het laatste gegevenspunt in uw tijdreeks te detecteren
  • Trendwijzigingspunten in uw gegevensset te detecteren.

Vereisten

  • Een Azure-abonnement - Een gratis abonnement maken
  • De huidige versie van Node.js
  • Zodra u uw Azure-abonnement hebt, maakt u een Anomaly Detector-resource in Azure Portal om uw sleutel en eindpunt op te halen. Wacht tot deze is geïmplementeerd en selecteer de knop Ga naar resource.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt om uw toepassing te verbinden met de Anomaly Detector-API. U gebruikt de sleutel en het eindpunt om omgevingsvariabelen te maken. U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.

Instellingen

Een nieuwe Node.js-toepassing maken

Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor de app, en navigeer naar deze map.

mkdir myapp && cd myapp

Maak een package.json bestand met de volgende inhoud:

{
  "dependencies": {
    "@azure/ai-anomaly-detector": "next",
    "@azure-rest/ai-anomaly-detector": "next",
    "@azure/core-auth": "^1.3.0",
    "csv-parse": "^5.3.0"
  }
}

De clientbibliotheek installeren

Installeer de vereiste npm-pakketten door het volgende uit te voeren vanuit dezelfde map als uw package.json-bestand:

npm install

Sleutel en eindpunt ophalen

Als u een aanroep wilt maken voor de Anomaly Detector-service, hebt u de volgende waarden nodig:

Naam van de variabele Waarde
ANOMALY_DETECTOR_ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. Voorbeeldeindpunt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY De WAARDE van de API-sleutel vindt u in de sectie Sleutels en eindpunten bij het onderzoeken van uw resource vanuit De Azure-portal. U kunt KEY1 of KEY2 gebruiken.
datapath In deze quickstart wordt het request-data.csv bestand gebruikt dat kan worden gedownload uit onze GitHub-voorbeeldgegevens.

Ga naar uw resource in Azure Portal. Het eindpunt en de sleutels vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1 of KEY2 gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.

Omgevingsvariabelen maken

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Voorbeeldgegevens downloaden

In deze quickstart wordt het request-data.csv bestand gebruikt dat kan worden gedownload uit onze GitHub-voorbeeldgegevens

U kunt de voorbeeldgegevens ook downloaden door het volgende uit te voeren:

curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv

Afwijkingen detecteren

Maak een bestand met de naam index.js en vervang dit door de volgende code:

const AnomalyDetector = require("@azure-rest/ai-anomaly-detector").default,
  { isUnexpected } = require("@azure-rest/ai-anomaly-detector");
const { AzureKeyCredential } = require("@azure/core-auth");

const { parse } = require("csv-parse/sync");
const fs = require("fs");

// You will need to set this environment variables or edit the following values
const apiKey = process.env["ANOMALY_DETECTOR_API_KEY"] || "";
const endpoint = process.env["ANOMALY_DETECTOR_ENDPOINT"] || "";
const timeSeriesDataPath = "./request-data.csv";

function read_series_from_file(path) {
  let result = Array();
  let input = fs.readFileSync(path).toString();
  let parsed = parse(input, { skip_empty_lines: true });
  parsed.forEach(function (e) {
    result.push({ timestamp: new Date(e[0]), value: Number(e[1]) });
  });
  return result;
}

async function main() {
  // create client
  const credential = new AzureKeyCredential(apiKey);
  const client = AnomalyDetector(endpoint, credential);

  // construct request
  const options = {
    body: {
      granularity: "daily",
      imputeMode: "auto",
      maxAnomalyRatio: 0.25,
      sensitivity: 95,
      series: read_series_from_file(timeSeriesDataPath),
    },
    headers: { "Content-Type": "application/json" },
  };

  // get last detect result
  const result = await client.path("/timeseries/entire/detect").post(options);
  if (isUnexpected(result)) {
    throw result;
  }

  if (result.body.isAnomaly) {
    result.body.isAnomaly.forEach(function (anomaly, index) {
      if (anomaly === true) {
        console.log(index);
      }
    });
  } else {
    console.log("There is no anomaly detected from the series.");
  }

}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

module.exports = { main };

De toepassing uitvoeren

Voer de toepassing uit met de opdracht node in uw quickstart-bestand.

node index.js

Uitvoer

Anomalies were detected from the series at index:
3
18
21
22
23
24
25
28
29
30
31
32
35
44

Inzicht in uw resultaten

In de bovenstaande code roepen we de Anomaly Detector-API aan om afwijkingen in de hele tijdreeks te detecteren als een batch met de methode detectEntireSeries() van de client. We slaan het geretourneerde AnomalyDetectorDetectEntireSeriesResponse-object op. Vervolgens doorlopen we de lijst met isAnomaly antwoorden en drukken we de index van waarden true af. Deze waarden komen overeen met de index van afwijkende gegevenspunten, als die zijn gevonden.

Resources opschonen

Als u een Anomaly Detector-resource wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd. U kunt ook overwegen om de omgevingsvariabelen die u hebt gemaakt te verwijderen als u deze niet meer wilt gebruiken.

Referentiedocumentatie voor bibliotheek |Bibliotheekbroncode | Pakket (PyPi) |De voorbeeldcode zoeken op GitHub

Ga aan de slag met de Anomaly Detector-clientbibliotheek voor Python. Volg deze stappen om het pakket te installeren en de algoritmen van de service te gebruiken. Met de Anomaly Detector-service kunt u afwijkingen in uw tijdreeksgegevens vinden door automatisch de best passende modellen erop uit te voeren, onafhankelijk van bedrijfstak, scenario of gegevensvolume.

Gebruik de Anomaly Detector-clientbibliotheek voor Python om:

  • Anomalieën in uw tijdreeksgegevensset als een batchaanvraag te detecteren
  • De anomaliestatus van het laatste gegevenspunt in uw tijdreeks te detecteren
  • Trendwijzigingspunten in uw gegevensset te detecteren.

Vereisten

Instellingen

Installeer de clientbibliotheek. U kunt de clientbibliotheek installeren met:

pip install --upgrade azure.ai.anomalydetector

Sleutel en eindpunt ophalen

Als u een aanroep wilt maken voor de Anomaly Detector-service, hebt u de volgende waarden nodig:

Naam van de variabele Waarde
ANOMALY_DETECTOR_ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. Voorbeeldeindpunt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY De WAARDE van de API-sleutel vindt u in de sectie Sleutels en eindpunten bij het onderzoeken van uw resource vanuit De Azure-portal. U kunt KEY1 of KEY2 gebruiken.
DATA_PATH In deze quickstart wordt het request-data.csv bestand gebruikt dat kan worden gedownload uit onze GitHub-voorbeeldgegevens. Voorbeeldpad: c:\\test\\request-data.csv

Ga naar uw resource in Azure Portal. Het eindpunt en de sleutels vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1 of KEY2 gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.

Omgevingsvariabelen maken

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Voorbeeldgegevens downloaden

In deze quickstart wordt het request-data.csv bestand gebruikt dat kan worden gedownload uit onze GitHub-voorbeeldgegevens

U kunt de voorbeeldgegevens ook downloaden door het volgende uit te voeren:

curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv

Afwijkingen detecteren

  1. Maak een nieuw Python-bestand met de naam quickstart.py. Open deze vervolgens in uw favoriete editor of IDE.

  2. Vervang de inhoud van quickstart.py door de volgende code. Wijzig de code om de namen van de omgevingsvariabelen voor uw sleutel, eindpunt en het tijdreeksgegevenspad toe te voegen:

    from azure.ai.anomalydetector import AnomalyDetectorClient
    from azure.ai.anomalydetector.models import *
    from azure.core.credentials import AzureKeyCredential
    import pandas as pd
    import os
    
    API_KEY = os.environ['ANOMALY_DETECTOR_API_KEY']
    ENDPOINT = os.environ['ANOMALY_DETECTOR_ENDPOINT']
    DATA_PATH = "REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH" #example: c:\\test\\request-data.csv
    
    client = AnomalyDetectorClient(ENDPOINT, AzureKeyCredential(API_KEY))
    
    series = []
    data_file = pd.read_csv(DATA_PATH, header=None, encoding='utf-8', date_parser=[0])
    for index, row in data_file.iterrows():
        series.append(TimeSeriesPoint(timestamp=row[0], value=row[1]))
    
    request = UnivariateDetectionOptions(series=series, granularity=TimeGranularity.DAILY)
    
    change_point_response = client.detect_univariate_change_point(request)
    anomaly_response = client.detect_univariate_entire_series(request)
    
    for i in range(len(data_file.values)):
        if (change_point_response.is_change_point[i]):
            print("Change point detected at index: "+ str(i))
        elif (anomaly_response.is_anomaly[i]):
            print("Anomaly detected at index:      "+ str(i))
    

    Belangrijk

    Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel over beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.

  3. De toepassing uitvoeren met de python opdracht in uw quickstart-bestand

    python quickstart.py
    

Uitvoer

Anomaly detected at index:      3
Anomaly detected at index:      18
Change point detected at index: 20
Anomaly detected at index:      21
Anomaly detected at index:      22
Anomaly detected at index:      23
Anomaly detected at index:      24
Anomaly detected at index:      25
Change point detected at index: 27
Anomaly detected at index:      28
Anomaly detected at index:      29
Anomaly detected at index:      30
Anomaly detected at index:      31
Anomaly detected at index:      32
Anomaly detected at index:      35
Anomaly detected at index:      44

Inzicht in uw resultaten

In onze bovenstaande code roepen we de Anomaly Detector-API twee keer aan. Met de eerste aanroep wordt gecontroleerd op trendwijzigingspunten in onze reeks voorbeeldgegevens met de detect_change_point methode. Deze aanroep retourneert een ChangePointDetectResponse waarde die we hebben opgeslagen in een variabele die we hebben genoemd change_point_request. Vervolgens doorlopen we de lijst met is_change_point antwoorden en drukken we de index van waarden af met een Booleaanse waarde true.

Met de tweede aanroep wordt de hele reeks voorbeeldgegevens gecontroleerd op afwijkingen met behulp van de detect_entire_series methode. Deze aanroep retourneert een EntireDetectResponse waarde die we hebben opgeslagen in een variabele die we hebben genoemd anomaly_response. We doorlopen de lijst met is_anomaly antwoorden en drukken de index van waarden af met een Booleaanse waarde true. We kunnen ook de detect_last_point methode hebben gebruikt, die geschikter is voor het detecteren van afwijkingen in realtime gegevens. Raadpleeg de handleiding voor aanbevolen procedures voor meer informatie.

Resultaten visualiseren

Als u de afwijkingen en wijzigingspunten in relatie tot de reeks voorbeeldgegevens wilt visualiseren, gebruiken we de populaire opensource-bibliotheekmatplotlib.

  1. Installeer de bibliotheek.

    pip install matplotlib
    
  2. Wijzig uw quickstart.py bestand met de volgende code:

    from azure.ai.anomalydetector import AnomalyDetectorClient
    from azure.ai.anomalydetector.models import *
    from azure.core.credentials import AzureKeyCredential
    import pandas as pd
    import matplotlib.pyplot as plt
    import matplotlib.dates as mdates
    import os
    
    API_KEY = os.environ['ANOMALY_DETECTOR_API_KEY']
    ENDPOINT = os.environ['ANOMALY_DETECTOR_ENDPOINT']
    DATA_PATH = "REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH" #example: c:\\test\\request-data.csv
    
    client = AnomalyDetectorClient(ENDPOINT, AzureKeyCredential(API_KEY))
    
    series = []
    data_file = pd.read_csv(DATA_PATH, header=None, encoding='utf-8', date_parser=[0])
    for index, row in data_file.iterrows():
        series.append(TimeSeriesPoint(timestamp=row[0], value=row[1]))
    
    request = UnivariateDetectionOptions(series=series, granularity=TimeGranularity.DAILY)
    
    change_point_response = client.detect_univariate_change_point(request)
    anomaly_response = client.detect_univariate_entire_series(request)
    
    for i in range(len(data_file.values)):
        temp_date_to_num = mdates.date2num(data_file.values[i])
        date= temp_date_to_num[0]
        if (change_point_response.is_change_point[i]):
            plt.plot(date,data_file.values[i][1], 's', color ='blue')
            print("Change point detected at index: "+ str(i))
        elif (anomaly_response.is_anomaly[i]):
            plt.plot(date,data_file.values[i][1], '^', color="red")
            print("Anomaly detected at index:      "+ str(i))
        else:
            plt.plot(date,data_file.values[i][1], 'o', color ='green')
    plt.show()
    

    Belangrijk

    Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel over beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.

  3. De toepassing uitvoeren met de python opdracht in uw quickstart-bestand

    python quickstart.py
    

Uitvoer

In dit codevoorbeeld hebben we de matplotlib bibliotheek toegevoegd zodat we normale gegevenspunten kunnen visualiseren en eenvoudig kunnen onderscheiden van wijzigingspunten en afwijkingen. Wijzigingspunten worden vertegenwoordigd door blauwe vierkantjes, afwijkingen zijn rode driehoeken en normale gegevenspunten zijn groene cirkels. Datums worden geconverteerd naar getallen met behulp van matplotlibdate2num de methode om beschrijvende waarden voor de grafieken op de y-as te bieden.

Screenshot of results with indexes of anomalies and change points on a scatter plot. Different shapes and colors are used for different data types..

Resources opschonen

Als u een Anomaly Detector-resource wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd. U kunt ook overwegen om de omgevingsvariabelen die u hebt gemaakt te verwijderen als u deze niet meer wilt gebruiken.

In deze quickstart leert u hoe u afwijkingen in een batch met tijdreeksgegevens kunt detecteren, met behulp van de Anomaly Detector-service en cURL.

Raadpleeg het overzichtsartikel voor een gedetailleerde bespreking van de concepten van Anomaly Detector.

Vereisten

  • Een Azure-abonnement - Een gratis abonnement maken
  • Zodra u uw Azure-abonnement hebt, maakt u een Anomaly Detector-resource in Azure Portal om uw sleutel en eindpunt op te halen. Wacht tot deze is geïmplementeerd en selecteer de knop Ga naar resource. U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.
  • Een geldig JSON-bestand met tijdreeksgegevens om te testen op afwijkingen. Als u geen eigen bestand hebt, kunt u een sample.json-bestand maken op basis van het voorbeeld van de aanvraagbody

Sleutel en eindpunt ophalen

Als u een aanroep wilt maken voor de Anomaly Detector-service, hebt u de volgende waarden nodig:

Naam van de variabele Waarde
ANOMALY_DETECTOR_ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. Voorbeeldeindpunt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY De WAARDE van de API-sleutel vindt u in de sectie Sleutels en eindpunten bij het onderzoeken van uw resource vanuit De Azure-portal. U kunt KEY1 of KEY2 gebruiken.

Ga naar uw resource in Azure Portal. Het eindpunt en de sleutels vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1 of KEY2 gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.

Omgevingsvariabelen maken

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Afwijkingen detecteren

Voer de volgende opdracht uit bij een opdrachtprompt: U moet de volgende waarden invoegen in de opdracht.

  • Uw abonnementssleutel voor de Anomaly Detector-service.
  • Uw eindadres voor Anomaly Detector.
  • Een geldig JSON-bestand met tijdreeksgegevens om te testen op afwijkingen. Als u geen eigen bestand hebt, kunt u een voorbeeld.json-bestand maken vanuit het Aanvraagbody-voorbeeld.
curl -v POST "%ANOMALY_DETECTOR_ENDPOINT%/anomalydetector/v1.0/timeseries/entire/detect"
-H "Content-Type: application/json"
-H "Ocp-Apim-Subscription-Key: %ANOMALY_DETECTOR_API_KEY%"
-d "@path_to_sample_file.json" 

Een voorbeeld van de volledige opdracht als één regel:

curl -v POST "%ANOMALY_DETECTOR_ENDPOINT%/anomalydetector/v1.0/timeseries/entire/detect" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: %ANOMALY_DETECTOR_API_KEY%" -d "@c:\test\rest.json"

Als u de cURL-opdracht uitvoert vanuit een Bash-shell, is uw opdracht iets anders:

curl -v POST "$ANOMALY_DETECTOR_ENDPOINT/anomalydetector/v1.0/timeseries/entire/detect" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: $ANOMALY_DETECTOR_API_KEY" -d "@c:\test\rest.json"

Als u de voorbeeldgegevens uit de vereisten hebt gebruikt, ontvangt u een antwoord 200, met de volgende resultaten:

{
  "expectedValues": [
    827.7940908243968,
    798.9133774671927,
    888.6058431807189,
    900.5606407986661,
    962.8389426378304,
    933.2591606306954,
    891.0784104799666,
    856.1781601363697,
    809.8987227908941,
    807.375129007505,
    764.3196682448518,
    803.933498594564,
    823.5900620883058,
    794.0905641334288,
    883.164245249282,
    894.8419000690953,
    956.8430591101258,
    927.6285055190114,
    885.812983784303,
    851.6424797402517,
    806.0927886943216,
    804.6826815312029,
    762.74070738882,
    804.0251702513732,
    825.3523662579559,
    798.0404188724976,
    889.3016505577698,
    902.4226124345937,
    965.867078532635,
    937.3200495736695,
    896.1720524711102,
    862.0087368413656,
    816.4662342097423,
    814.4297745524709,
    771.8614479159354,
    811.859271346729,
    831.8998279215521,
    802.947544797165,
    892.5684407435083,
    904.5488214533809,
    966.8527063844707,
    937.3168391003043,
    895.180003672544,
    860.3649596356635,
    814.1707285969043,
    811.9054862686213,
    769.1083769610742,
    809.2328084659704
  ],
  "upperMargins": [
    41.389704541219835,
    39.94566887335964,
    44.43029215903594,
    45.02803203993331,
    48.14194713189152,
    46.66295803153477,
    44.55392052399833,
    42.808908006818484,
    40.494936139544706,
    40.36875645037525,
    38.215983412242586,
    40.196674929728196,
    41.17950310441529,
    39.70452820667144,
    44.1582122624641,
    44.74209500345477,
    47.84215295550629,
    46.38142527595057,
    44.290649189215145,
    42.58212398701258,
    40.30463943471608,
    40.234134076560146,
    38.137035369441,
    40.201258512568664,
    41.267618312897795,
    39.90202094362488,
    44.46508252788849,
    45.121130621729684,
    48.29335392663175,
    46.86600247868348,
    44.80860262355551,
    43.100436842068284,
    40.82331171048711,
    40.721488727623544,
    38.593072395796774,
    40.59296356733645,
    41.5949913960776,
    40.14737723985825,
    44.62842203717541,
    45.227441072669045,
    48.34263531922354,
    46.86584195501521,
    44.759000183627194,
    43.01824798178317,
    40.70853642984521,
    40.59527431343106,
    38.45541884805371,
    40.46164042329852
  ],
  "lowerMargins": [
    41.389704541219835,
    39.94566887335964,
    44.43029215903594,
    45.02803203993331,
    48.14194713189152,
    46.66295803153477,
    44.55392052399833,
    42.808908006818484,
    40.494936139544706,
    40.36875645037525,
    38.215983412242586,
    40.196674929728196,
    41.17950310441529,
    39.70452820667144,
    44.1582122624641,
    44.74209500345477,
    47.84215295550629,
    46.38142527595057,
    44.290649189215145,
    42.58212398701258,
    40.30463943471608,
    40.234134076560146,
    38.137035369441,
    40.201258512568664,
    41.267618312897795,
    39.90202094362488,
    44.46508252788849,
    45.121130621729684,
    48.29335392663175,
    46.86600247868348,
    44.80860262355551,
    43.100436842068284,
    40.82331171048711,
    40.721488727623544,
    38.593072395796774,
    40.59296356733645,
    41.5949913960776,
    40.14737723985825,
    44.62842203717541,
    45.227441072669045,
    48.34263531922354,
    46.86584195501521,
    44.759000183627194,
    43.01824798178317,
    40.70853642984521,
    40.59527431343106,
    38.45541884805371,
    40.46164042329852
  ],
  "isAnomaly": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    true,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
  ],
  "isPositiveAnomaly": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    true,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
  ],
  "isNegativeAnomaly": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
  ],
  "period": 12
}

Raadpleeg de REST-naslaginformatie over anomaliedetectie voor meer informatie.

Resources opschonen

Als u een Azure AI-servicesabonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook andere resources verwijderd die aan de resourcegroep zijn gekoppeld.

Volgende stappen

Concepten:

Zelfstudies: