Hızlı Başlangıç: Tek Değişkenli Anomali Algılayıcısı istemci kitaplığını kullanma

Önemli

20 Eylül 2023 tarihinden itibaren yeni Anomali Algılayıcısı kaynakları oluşturamayacaksınız. Anomali Algılayıcısı hizmeti 1 Ekim 2026'da kullanımdan kaldırılıyor.

Kitaplık başvuru belgeleri |Kitaplık kaynak kodu | Paketi (NuGet) |GitHub'da örnek kodu bulma

C# için Anomali Algılayıcısı istemci kitaplığını kullanmaya başlayın. Hizmet tarafından sağlanan algoritmaları kullanarak paketi yüklemeye başlamak için bu adımları izleyin. Anomali Algılayıcısı hizmeti, endüstri, senaryo veya veri hacmi ne olursa olsun zaman serisi verilerinizdeki anormallikleri otomatik olarak en uygun modelleri kullanarak bulmanızı sağlar.

C# için Anomali Algılayıcısı istemci kitaplığını kullanarak:

  • Toplu istek olarak zaman serisi veri kümenizdeki anomalileri algılama
  • Zaman serinizdeki en son veri noktasının anomali durumunu algılama
  • Veri kümenizdeki eğilim değişiklik noktalarını algılayın.

Önkoşullar

Ayarlama

Yeni .NET Core uygulaması oluşturma

Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), adlı anomaly-detector-quickstartyeni bir konsol uygulaması oluşturmak için komutunu kullanındotnet new. Bu komut, tek bir C# kaynak dosyasıyla basit bir "Merhaba Dünya" projesi oluşturur: Program.cs.

dotnet new console -n anomaly-detector-quickstart

Dizininizi yeni oluşturulan uygulama klasörüyle değiştirin. Uygulamayı şu şekilde oluşturabilirsiniz:

dotnet build

Derleme çıkışı hiçbir uyarı veya hata içermemelidir.

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

İstemci kitaplığını yükleme

Uygulama dizininde aşağıdaki komutla .NET için Anomali Algılayıcısı istemci kitaplığını yükleyin:

dotnet add package Azure.AI.AnomalyDetector --prerelease

Anahtarı ve uç noktayı alma

Anomali Algılayıcısı hizmetine karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değerler gerekir:

Değişken adı Değer
ANOMALY_DETECTOR_ENDPOINT Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Örnek uç nokta: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY API anahtarı değeri, Azure portalından kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz.
DATA_PATH Bu hızlı başlangıçta request-data.csv GitHub örnek verilerimizden indirilebilen dosya kullanılmaktadır. Örnek yol: c:\\test\\request-data.csv

Azure portalında kaynağınıza gidin. Uç Nokta ve Anahtarlar Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1 veya KEY2 kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.

Ortam değişkenlerini oluşturma

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Örnek verileri indirme data

Bu hızlı başlangıçta request-data.csv GitHub örnek verilerimizden indirilebilen dosya kullanılmaktadır

Aşağıdakini çalıştırarak örnek verileri de indirebilirsiniz:

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

Anomalileri algılama

Proje dizininden program.cs dosyasını açın ve değerini aşağıdaki kodla değiştirin:

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


Önemli

Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Kimlik bilgisi güvenliği hakkında daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

dotnet run program.cs

Çıktı

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

Kod ayrıntıları

Sonuçlarınızı anlama

Yukarıdaki kodda örnek veriler okunur ve bir DetectRequest nesneye dönüştürülür. Dosya yolu ile çağırır File.ReadAllLines , nesnelerin listesini TimeSeriesPoint oluşturur ve tüm yeni satır karakterlerini çıkarırız. Değerleri ayıklayın ve zaman damgasını sayısal değerinden ayırın ve bunları yeni TimeSeriesPoint bir nesneye ekleyin. DetectRequest nesnesi, veri noktalarının tanecikliği (veya periyodikliği) için olan TimeGranularity.Daily bir dizi veri noktasından oluşur. Ardından istemcinin DetectEntireSeriesAsync yöntemini nesnesiyle DetectRequest çağırıp yanıtı bir EntireDetectResponse nesne olarak bekleyeceğiz. Ardından yanıtın IsAnomaly değerlerini yineler ve doğru olan değerleri yazdırırız. Bu değerler, varsa anormal veri noktalarının dizinine karşılık gelir.

Kaynakları temizleme

bir Anomali Algılayıcısı kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler. Artık kullanmayı düşünmüyorsanız, oluşturduğunuz ortam değişkenlerini silmeyi de düşünebilirsiniz.

Kitaplık başvuru belgeleri |Kitaplık kaynak kodu | Paketi (npm) |GitHub'da örnek kodu bulma

JavaScript için Anomali Algılayıcısı istemci kitaplığını kullanmaya başlayın. Paketi yüklemek için bu adımları izleyin ve hizmet tarafından sağlanan algoritmaları kullanmaya başlayın. Anomali Algılayıcısı hizmeti, sektör, senaryo veya veri hacmi ne olursa olsun zaman serisi verilerinizde en uygun modeli otomatik olarak kullanarak anormallikleri bulmanıza olanak tanır.

JavaScript için Anomali Algılayıcısı istemci kitaplığını kullanarak:

  • Toplu istek olarak zaman serisi veri kümenizdeki anomalileri algılama
  • Zaman serinizdeki en son veri noktasının anomali durumunu algılama
  • Veri kümenizdeki eğilim değişiklik noktalarını algılayın.

Önkoşullar

Ayarlama

Yeni bir Node.js uygulaması oluşturma

Konsol penceresinde (cmd, PowerShell veya Bash gibi), uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.

mkdir myapp && cd myapp

Aşağıdaki içeriklere sahip bir package.json dosya oluşturun:

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

İstemci kitaplığını yükleme

Aşağıdakini package.json dosyanızla aynı dizinden çalıştırarak gerekli npm paketlerini yükleyin:

npm install

Anahtarı ve uç noktayı alma

Anomali Algılayıcısı hizmetine karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değerler gerekir:

Değişken adı Değer
ANOMALY_DETECTOR_ENDPOINT Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Örnek uç nokta: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY API anahtarı değeri, Azure portalından kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz.
datapath Bu hızlı başlangıçta request-data.csv GitHub örnek verilerimizden indirilebilen dosya kullanılmaktadır.

Azure portalında kaynağınıza gidin. Uç Nokta ve Anahtarlar Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1 veya KEY2 kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.

Ortam değişkenlerini oluşturma

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Örnek verileri indirme data

Bu hızlı başlangıçta request-data.csv GitHub örnek verilerimizden indirilebilen dosya kullanılmaktadır

Aşağıdakini çalıştırarak örnek verileri de indirebilirsiniz:

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

Anomalileri algılama

adlı index.js bir dosya oluşturun ve öğesini aşağıdaki kodla değiştirin:

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 };

Uygulamayı çalıştırma

Uygulamayı hızlı başlangıç dosyanızdaki node komutuyla çalıştırın.

node index.js

Çıktı

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

Sonuçlarınızı anlama

Yukarıdaki kodda, istemcinin detectEntireSeries() yöntemiyle zaman serisinin tamamında anomalileri toplu iş olarak algılamak için Anomali Algılayıcısı API'sini çağırırız. Döndürülen AnomalyDetectorDetectEntireSeriesResponse nesnesini depolarız . Ardından yanıtın isAnomaly listesinde yinelenir ve tüm true değerlerin dizinini yazdırırız. Bu değerler, varsa anormal veri noktalarının dizinine karşılık gelir.

Kaynakları temizleme

bir Anomali Algılayıcısı kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler. Artık kullanmayı düşünmüyorsanız, oluşturduğunuz ortam değişkenlerini silmeyi de düşünebilirsiniz.

Kitaplık başvuru belgeleri |Kitaplık kaynak kodu | Paketi (PyPi) |GitHub'da örnek kodu bulma

Python için Anomali Algılayıcısı istemci kitaplığını kullanmaya başlayın. Paketi yüklemek ve hizmet tarafından sağlanan algoritmaları kullanmaya başlamak için bu adımları izleyin. Anomali Algılayıcısı hizmeti, endüstri, senaryo veya veri hacmi ne olursa olsun zaman serisi verilerinizdeki anormallikleri otomatik olarak en uygun modelleri kullanarak bulmanızı sağlar.

Python için Anomali Algılayıcısı istemci kitaplığını kullanarak:

  • Toplu istek olarak zaman serisi veri kümenizdeki anomalileri algılama
  • Zaman serinizdeki en son veri noktasının anomali durumunu algılama
  • Veri kümenizdeki eğilim değişiklik noktalarını algılayın.

Önkoşullar

Ayarlama

İstemci kitaplığını yükleyin. İstemci kitaplığını şu şekilde yükleyebilirsiniz:

pip install --upgrade azure.ai.anomalydetector

Anahtarı ve uç noktayı alma

Anomali Algılayıcısı hizmetine karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değerler gerekir:

Değişken adı Değer
ANOMALY_DETECTOR_ENDPOINT Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Örnek uç nokta: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY API anahtarı değeri, Azure portalından kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz.
DATA_PATH Bu hızlı başlangıçta request-data.csv GitHub örnek verilerimizden indirilebilen dosya kullanılmaktadır. Örnek yol: c:\\test\\request-data.csv

Azure portalında kaynağınıza gidin. Uç Nokta ve Anahtarlar Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1 veya KEY2 kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.

Ortam değişkenlerini oluşturma

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Örnek verileri indirme data

Bu hızlı başlangıçta request-data.csv GitHub örnek verilerimizden indirilebilen dosya kullanılmaktadır

Aşağıdakini çalıştırarak örnek verileri de indirebilirsiniz:

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

Anomalileri algılama

  1. quickstart.py adlı yeni bir Python dosyası oluşturun. Ardından tercih ettiğiniz düzenleyicide veya IDE'de açın.

  2. quickstart.py içeriğini aşağıdaki kodla değiştirin. Anahtarınızın, uç noktanızın ve zaman serisi veri yolunun ortam değişkeni adlarını eklemek için kodu değiştirin:

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

    Önemli

    Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Kimlik bilgisi güvenliği hakkında daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

  3. Uygulamayı hızlı başlangıç dosyanızda komutuyla python çalıştırın

    python quickstart.py
    

Çıktı

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

Sonuçlarınızı anlama

Yukarıdaki kodumuzda Anomali Algılayıcısı API'sini iki kez çağırırız. İlk çağrı, yöntemiyle detect_change_point örnek veri serimizdeki eğilim değişiklik noktalarını denetler. Bu çağrı, adlı change_point_requestdeğişkende depoladığımız bir döndürürChangePointDetectResponse. Ardından yanıtın is_change_point listesinde yinelenir ve değerinin boole değeriyle tüm değerlerin dizinini trueyazdırırız.

İkinci çağrı, yöntemini kullanarak örnek veri serisinin tamamında detect_entire_series anomalileri denetler. Bu çağrı, adlı anomaly_responsedeğişkende depoladığımız bir döndürürEntireDetectResponse. Yanıtın is_anomaly listesinde yinelemeler yapıyoruz ve değerlerin dizinini boole truedeğeriyle yazdırıyoruz. Alternatif olarak, gerçek zamanlı verilerdeki anomalileri algılamak için daha uygun olan yöntemini kullanabilirdik detect_last_point . Daha fazla bilgi edinmek için en iyi yöntemler kılavuzuna başvurun.

Sonuçları görselleştirme

Anomalileri görselleştirmek ve örnek veri serisine göre noktaları değiştirmek için popüler açık kaynak kitaplık matplotlib'ini kullanacağız.

  1. Kitaplığı yükleyin.

    pip install matplotlib
    
  2. quickstart.py dosyanızı aşağıdaki kodla değiştirin:

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

    Önemli

    Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Kimlik bilgisi güvenliği hakkında daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

  3. Uygulamayı hızlı başlangıç dosyanızda komutuyla python çalıştırın

    python quickstart.py
    

Çıktı

Bu kod örneğinde, normal veri noktalarını görselleştirmemize ve değişiklik noktalarından matplotlib ve anomalilerden kolayca ayırt etmemize olanak sağlamak için kitaplığını ekledik. Değişiklik noktaları mavi karelerle, anomaliler kırmızı üçgenlerle ve normal veri noktaları yeşil dairelerle gösterilir. Tarihler, y eksenindeki grafikler için graf kullanımına uygun değerler sağlamak üzere 'nin date2num yöntemi kullanılarak matplotlibsayılara dönüştürülür.

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

Kaynakları temizleme

bir Anomali Algılayıcısı kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler. Artık kullanmayı düşünmüyorsanız, oluşturduğunuz ortam değişkenlerini silmeyi de düşünebilirsiniz.

Bu hızlı başlangıçta, Anomali Algılayıcısı hizmetini ve cURL'yi kullanarak bir dizi zaman serisi verisindeki anomalileri algılamayı öğreneceksiniz.

Anomali Algılayıcısı kavramlarına üst düzey bir bakış için genel bakış makalesine bakın.

Önkoşullar

Anahtarı ve uç noktayı alma

Anomali Algılayıcısı hizmetine karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değerler gerekir:

Değişken adı Değer
ANOMALY_DETECTOR_ENDPOINT Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Örnek uç nokta: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY API anahtarı değeri, Azure portalından kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz.

Azure portalında kaynağınıza gidin. Uç Nokta ve Anahtarlar Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1 veya KEY2 kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.

Ortam değişkenlerini oluşturma

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Anomalileri algılama

Komut isteminde aşağıdaki komutu çalıştırın. Komutuna aşağıdaki değerleri eklemeniz gerekir.

  • Anomali algılayıcısı hizmet abonelik anahtarınız.
  • Anomali algılayıcısı uç nokta adresiniz.
  • Anomalileri test etmek için geçerli bir zaman serisi veri JSON dosyası. Kendi dosyanız yoksa İstek gövdesi örneğinden bir sample.json dosyası oluşturabilirsiniz.
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" 

Tek satır olarak tam komut örneği:

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"

Alternatif olarak, bir Bash kabuğundan cURL komutunu çalıştırıyorsanız komutunuz biraz farklı olabilir:

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"

Ön koşullardaki örnek verileri kullandıysanız aşağıdaki sonuçları içeren bir yanıt 200 almanız gerekir:

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

Daha fazla bilgi için bkz . Anomali Algılama REST başvurusu.

Kaynakları temizleme

Azure AI hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.

Sonraki adımlar

Kavramlar:

Öğreticiler: