Megosztás a következőn keresztül:


Rövid útmutató: Az Univariate anomáliadetektor ügyfélkódtár használata

Fontos

2023. szeptember 20-tól nem hozhat létre új anomáliadetektor erőforrásokat. A anomáliadetektor szolgáltatás 2026. október 1-jén megszűnik.

Kódtár-referenciadokumentáció Kódtár forráskódcsomagja | (NuGet) |A mintakód megkeresése a GitHubon |

Ismerkedés a C# anomáliadetektor ügyfélkódtárával. A csomag telepítéséhez kövesse az alábbi lépéseket a szolgáltatás által biztosított algoritmusok használatával. A anomáliadetektor szolgáltatás lehetővé teszi, hogy az idősor adataiban rendellenességeket találjon a legjobban illeszkedő modellek automatikus használatával, iparágtól, forgatókönyvtől vagy adatmennyiségtől függetlenül.

Használja a C# anomáliadetektor ügyfélkódtárát a következő célokra:

  • A rendellenességek észlelése az idősor adatkészletében kötegelt kérelemként
  • Az idősor legújabb adatpontjának rendellenességi állapotának észlelése
  • Trendváltozási pontok észlelése az adathalmazban.

Előfeltételek

  • Azure-előfizetés – Ingyenes létrehozás
  • A .NET Core aktuális verziója
  • Miután megkapta az Azure-előfizetését, hozzon létre egy anomáliadetektor erőforrást az Azure Portalon a kulcs és a végpont lekéréséhez. Várja meg, amíg üzembe helyezi, és válassza az Erőforrás megnyitása gombot. Az ingyenes tarifacsomag (F0) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős szintre az éles környezetben.

Beállítás

Egy új .NET Core-alkalmazás létrehozása

Egy konzolablakban (például parancsmag, PowerShell vagy Bash) a dotnet new paranccsal hozzon létre egy új konzolalkalmazást a névvel anomaly-detector-quickstart. Ez a parancs létrehoz egy egyszerű "„Helló világ!” alkalmazás" projektet egyetlen C#-forrásfájllal: Program.cs.

dotnet new console -n anomaly-detector-quickstart

Módosítsa a könyvtárat az újonnan létrehozott alkalmazásmappára. Az alkalmazást a következőkkel hozhatja létre:

dotnet build

A buildkimenet nem tartalmazhat figyelmeztetést vagy hibát.

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

Telepítse az ügyfélkódtárat

Az alkalmazáskönyvtárban telepítse a .NET-hez készült anomáliadetektor ügyfélkódtárat a következő paranccsal:

dotnet add package Azure.AI.AnomalyDetector --prerelease

Kulcs és végpont lekérése

A anomáliadetektor szolgáltatással való sikeres híváshoz a következő értékekre lesz szüksége:

Változó neve Érték
ANOMALY_DETECTOR_ENDPOINT Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. Példavégpont: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Az API-kulcs értéke a Kulcsok > végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A következők bármelyikét használhatja: KEY1 vagy KEY2.
DATA_PATH Ez a rövid útmutató a request-data.csv GitHub-mintaadatokból letölthető fájlt használja. Példa elérési útja: c:\\test\\request-data.csv

Nyissa meg az erőforrást az Azure Portalon. A végpont és a kulcsok az Erőforrás-kezelés szakaszban találhatók. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1 vagy KEY2. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.

Környezeti változók létrehozása

Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.

Fontos

HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.

Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Mintaadatok letöltése

Ez a rövid útmutató a request-data.csv GitHub-mintaadatokból letölthető fájlt használja

A mintaadatokat a következő futtatásával is letöltheti:

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

Anomáliák észlelése

Nyissa meg a program.cs fájlt a projektkönyvtárban, és cserélje le a következő kódra:

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.");
            }
        }
    }
}


Futtassa az alkalmazást a következő paranccsal:

dotnet run program.cs

Hozam

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

Kód részletei

Az eredmények ismertetése

A fenti kódban a rendszer beolvassa és objektummá DetectRequest alakítja a mintaadatokat. Meghívjuk File.ReadAllLines a fájl elérési útját, létrehozunk egy objektumlistát TimeSeriesPoint , és minden új sorkarakterek csíkozását. Bontsa ki az értékeket, és válassza el az időbélyeget a numerikus értékétől, és adja hozzá őket egy új TimeSeriesPoint objektumhoz. Az DetectRequest objektum adatpontok sorozatából áll, és TimeGranularity.Daily az adatpontok részletessége (vagy periodikussága) szempontjából. Ezután meghívjuk az ügyfél metódusát DetectEntireSeriesAsync az DetectRequest objektummal, és objektumként EntireDetectResponse várjuk a választ. Ezután átvezetjük a válasz IsAnomaly értékeit, és kinyomtatjuk az igaz értékeket. Ezek az értékek megfelelnek a rendellenes adatpontok indexének, ha vannak ilyenek.

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy anomáliadetektor erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli. Érdemes lehet törölnie a létrehozott környezeti változókat is, ha már nem szeretné használni őket.

Kódtár-referenciadokumentáció Kódtár forráskódcsomagja | (npm) |A mintakód megkeresése a GitHubon |

Ismerkedés a JavaScript anomáliadetektor ügyfélkódtárával. A csomag telepítéséhez kövesse az alábbi lépéseket, és kezdje el használni a szolgáltatás által biztosított algoritmusokat. A anomáliadetektor szolgáltatás lehetővé teszi, hogy az iparágtól, forgatókönyvtől vagy adatmennyiségtől függetlenül automatikusan a legjobban illeszkedő modellt használva rendellenességeket találjon az idősoradatokban.

A JavaScripthez készült anomáliadetektor ügyfélkódtár használatával:

  • A rendellenességek észlelése az idősor adatkészletében kötegelt kérelemként
  • Az idősor legújabb adatpontjának rendellenességi állapotának észlelése
  • Trendváltozási pontok észlelése az adathalmazban.

Előfeltételek

  • Azure-előfizetés – Ingyenes létrehozás
  • A Node.js aktuális verziója
  • Miután megkapta az Azure-előfizetését, hozzon létre egy anomáliadetektor erőforrást az Azure Portalon a kulcs és a végpont lekéréséhez. Várja meg, amíg üzembe helyezi, és válassza az Erőforrás megnyitása gombot. Az ingyenes tarifacsomag (F0) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős szintre az éles környezetben.

Beállítás

Új Node.js-alkalmazás létrehozása

Egy konzolablakban (pl. cmd, PowerShell vagy Bash) hozzon létre egy új mappát az alkalmazásnak, majd navigáljon oda.

mkdir myapp && cd myapp

Hozzon létre egy package.json fájlt a következő tartalommal:

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

Telepítse az ügyfélkódtárat

Telepítse a szükséges npm-csomagokat az alábbi parancs futtatásával a package.json fájllal megegyező könyvtárból:

npm install

Kulcs és végpont lekérése

A anomáliadetektor szolgáltatással való sikeres híváshoz a következő értékekre lesz szüksége:

Változó neve Érték
ANOMALY_DETECTOR_ENDPOINT Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. Példavégpont: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Az API-kulcs értéke a Kulcsok > végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A következők bármelyikét használhatja: KEY1 vagy KEY2.
datapath Ez a rövid útmutató a request-data.csv GitHub-mintaadatokból letölthető fájlt használja.

Nyissa meg az erőforrást az Azure Portalon. A végpont és a kulcsok az Erőforrás-kezelés szakaszban találhatók. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1 vagy KEY2. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.

Környezeti változók létrehozása

Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.

Fontos

HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.

Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Mintaadatok letöltése

Ez a rövid útmutató a request-data.csv GitHub-mintaadatokból letölthető fájlt használja

A mintaadatokat a következő futtatásával is letöltheti:

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

Anomáliák észlelése

Hozzon létre egy fájlt, index.js és cserélje le a következő kódra:

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");

// Retrieve the endpoint and key from the environment variables.
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 };

Az alkalmazás futtatása

Futtassa az alkalmazást a node paranccsal a gyorsútmutatós fájlon.

node index.js

Hozam

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

Az eredmények ismertetése

A fenti kódban meghívjuk a anomáliadetektor API-t, hogy az ügyfél detectEntireSeries() metódusával kötegként észlelje az egész idősor rendellenességeit. A visszaadott AnomalyDetectorDetectEntireSeriesResponse objektumot tároljuk. Ezután végigvezetjük a válaszlistán isAnomaly , és kinyomtatjuk az értékek true indexét. Ezek az értékek megfelelnek a rendellenes adatpontok indexének, ha vannak ilyenek.

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy anomáliadetektor erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli. Érdemes lehet törölnie a létrehozott környezeti változókat is, ha már nem szeretné használni őket.

Kódtár referenciadokumentációja Kódtár forráskódcsomagja | (PyPi) |A mintakód megkeresése a GitHubon |

Ismerkedés a Python anomáliadetektor ügyfélkódtárával. A csomag telepítéséhez és a szolgáltatás által biztosított algoritmusok használatának megkezdéséhez kövesse az alábbi lépéseket. A anomáliadetektor szolgáltatás lehetővé teszi, hogy az idősor adataiban rendellenességeket találjon a legjobban illeszkedő modellek automatikus használatával, iparágtól, forgatókönyvtől vagy adatmennyiségtől függetlenül.

A Pythonhoz készült anomáliadetektor ügyfélkódtár használatával:

  • A rendellenességek észlelése az idősor adatkészletében kötegelt kérelemként
  • Az idősor legújabb adatpontjának rendellenességi állapotának észlelése
  • Trendváltozási pontok észlelése az adathalmazban.

Előfeltételek

Beállítás

Telepítse az ügyfélkódtárat. Az ügyfélkódtárat a következőkkel telepítheti:

pip install --upgrade azure.ai.anomalydetector

Kulcs és végpont lekérése

A anomáliadetektor szolgáltatással való sikeres híváshoz a következő értékekre lesz szüksége:

Változó neve Érték
ANOMALY_DETECTOR_ENDPOINT Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. Példavégpont: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Az API-kulcs értéke a Kulcsok > végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A következők bármelyikét használhatja: KEY1 vagy KEY2.
DATA_PATH Ez a rövid útmutató a request-data.csv GitHub-mintaadatokból letölthető fájlt használja. Példa elérési útja: c:\\test\\request-data.csv

Nyissa meg az erőforrást az Azure Portalon. A végpont és a kulcsok az Erőforrás-kezelés szakaszban találhatók. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1 vagy KEY2. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.

Környezeti változók létrehozása

Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.

Fontos

HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.

Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Mintaadatok letöltése

Ez a rövid útmutató a request-data.csv GitHub-mintaadatokból letölthető fájlt használja

A mintaadatokat a következő futtatásával is letöltheti:

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

Anomáliák észlelése

  1. Hozzon létre egy új Python-fájlt quickstart.py néven. Ezután nyissa meg a kívánt szerkesztőben vagy IDE-ben.

  2. Cserélje le a quickstart.py tartalmát a következő kódra. Módosítsa a kódot úgy, hogy hozzáadja a környezeti változók nevét a kulcshoz, a végponthoz és az idősor adatútvonalához:

    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))
    

    Fontos

    Éles környezetben biztonságos módon tárolhatja és érheti el a hitelesítő adatait, például az Azure Key Vaultot. A hitelesítő adatok biztonságával kapcsolatos további információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.

  3. Futtassa az alkalmazást a python gyorsútmutató-fájl parancsával

    python quickstart.py
    

Hozam

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

Az eredmények ismertetése

A fenti kódban kétszer hívjuk meg a anomáliadetektor API-t. Az első hívás a módszerrel ellenőrzi a mintaadatsor trendváltozási pontjait detect_change_point . Ez a hívás egy ChangePointDetectResponse olyan változót ad vissza, amelyet egy elnevezett change_point_requestváltozóban tároltunk. Ezután átvezetjük a válasz is_change_point listáját, és kinyomtatjuk az értékek indexét egy logikai trueértékkel.

A második hívás a teljes mintaadatsort ellenőrzi, hogy a metódussal detect_entire_series anomáliák-e. Ez a hívás egy EntireDetectResponse olyan változót ad vissza, amelyet egy elnevezett anomaly_responseváltozóban tároltunk. Végigvezetjük a válaszlistán is_anomaly , és kinyomtatjuk az értékek indexét a truelogikai értékekkel. Alternatív megoldásként használhattuk volna a detect_last_point módszert, amely alkalmasabb a valós idejű adatok rendellenességeinek észlelésére. További információért tekintse meg az ajánlott eljárásokat ismertető útmutatót.

Eredmények megjelenítése

A mintaadatsor rendellenességek és változáspontok megjelenítéséhez a népszerű nyílt forráskódú matplotlib könyvtárat fogjuk használni.

  1. Telepítse a kódtárat.

    pip install matplotlib
    
  2. Módosítsa a quickstart.py fájlt a következő kóddal:

    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()
    

    Fontos

    Éles környezetben biztonságos módon tárolhatja és érheti el a hitelesítő adatait, például az Azure Key Vaultot. A hitelesítő adatok biztonságával kapcsolatos további információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.

  3. Futtassa az alkalmazást a python gyorsútmutató-fájl parancsával

    python quickstart.py
    

Hozam

Ebben a kód példában hozzáadtuk a matplotlib kódtárat, amely lehetővé teszi számunkra a normál adatpontok vizualizációját és egyszerű megkülönböztetése a változási pontoktól és a rendellenességektól. A változási pontokat kék négyzetek jelölik, az anomáliák piros háromszögek, a normál adatpontok pedig zöld körök. A dátumok számokká alakulnak a diagramok date2num y tengelyének gráfbarát értékeit biztosító metódus használatávalmatplotlib.

Képernyőkép az eredményekről a pontdiagram anomáliáinak és változási pontjainak indexeivel. A különböző adattípusokhoz különböző alakzatok és színek használhatók.

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy anomáliadetektor erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli. Érdemes lehet törölnie a létrehozott környezeti változókat is, ha már nem szeretné használni őket.

Ebben a rövid útmutatóban megtudhatja, hogyan észlelheti az idősoradatok kötegében lévő rendellenességeket a anomáliadetektor szolgáltatás és a cURL használatával.

A anomáliadetektor fogalmait az áttekintési cikkben tekintheti meg.

Előfeltételek

  • Azure-előfizetés – Ingyenes létrehozás
  • Miután megkapta az Azure-előfizetését, hozzon létre egy anomáliadetektor erőforrást az Azure Portalon a kulcs és a végpont lekéréséhez. Várja meg, amíg üzembe helyezi, és válassza az Erőforrás megnyitása gombot. Az ingyenes tarifacsomag (F0) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős szintre az éles környezetben.
  • Az idősoradatok érvényes JSON-fájlja az anomáliák teszteléséhez. Ha nem rendelkezik saját fájllal, létrehozhat egy sample.json fájlt a Kérelem törzsmintából

Kulcs és végpont lekérése

A anomáliadetektor szolgáltatással való sikeres híváshoz a következő értékekre lesz szüksége:

Változó neve Érték
ANOMALY_DETECTOR_ENDPOINT Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. Példavégpont: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Az API-kulcs értéke a Kulcsok > végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A következők bármelyikét használhatja: KEY1 vagy KEY2.

Nyissa meg az erőforrást az Azure Portalon. A végpont és a kulcsok az Erőforrás-kezelés szakaszban találhatók. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1 vagy KEY2. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.

Környezeti változók létrehozása

Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.

Fontos

HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.

Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Anomáliák észlelése

Futtassa a következő parancsot egy parancssorban. A következő értékeket kell beszúrnia a parancsba.

  • Az Anomáliadetektor szolgáltatás előfizetési kulcsa.
  • Az Anomáliadetektor végpontcíme.
  • Az idősoradatok érvényes JSON-fájlja az anomáliák teszteléséhez. Ha nem rendelkezik saját fájllal, létrehozhat egy sample.json fájlt a Kérelem törzsmintából.
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" 

Példa a teljes parancsra egyetlen sorként:

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"

Másik lehetőségként, ha a cURL parancsot egy Bash-rendszerhéjból futtatja, a parancs kissé eltérő lesz:

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"

Ha az előfeltételekből származó mintaadatokat használta, a 200-ra vonatkozó választ kell kapnia a következő eredményekkel:

{
  "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
}

További információ: Anomáliadetektálási REST-referencia.

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Azure AI-szolgáltatási előfizetést, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése az erőforráscsoporthoz társított egyéb erőforrásokat is törli.

Következő lépések

Fogalmak:

Oktatóanyagok: