Aracılığıyla paylaş


Öğretici: Toplu işlem algılama ve Power BI kullanarak anomalileri görselleştirme (tek değişkenli)

Ö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.

Toplu iş olarak bir zaman serisi veri kümesi içindeki anomalileri bulmak için bu öğreticiyi kullanın. Power BI desktop'ı kullanarak bir Excel dosyası alır, verileri Anomali Algılayıcısı API'sine hazırlar ve istatistiksel anomalileri görselleştirirsiniz.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Zaman serisi veri kümesini içeri aktarmak ve dönüştürmek için Power BI Desktop'ı kullanma
  • Toplu anomali algılama için Power BI Desktop'Anomali Algılayıcısı API'siyle tümleştirme
  • Beklenen ve görülen değerler ve anomali algılama sınırları dahil olmak üzere verilerinizde bulunan anomalileri görselleştirin.

Önkoşullar

Dekont

Anomali Algılayıcısı API'sini kullanırken en iyi sonuçları elde etmesi için JSON biçimli zaman serisi verileriniz şunları içermelidir:

  • veri noktaları aynı aralıkla ayrılmıştır ve beklenen nokta sayısının %10'undan fazla eksik değildir.
  • verileriniz net bir mevsimsel desene sahip değilse en az 12 veri noktası.
  • verileriniz net bir mevsimsel desene sahipse en az 4 desen oluşumu.

Zaman serisi verilerini yükleme ve biçimlendirme

Başlamak için Power BI Desktop'ı açın ve önkoşullardan indirdiğiniz zaman serisi verilerini yükleyin. Bu Excel dosyası bir dizi Eşgüdümlü Evrensel Saat (UTC) zaman damgası ve değer çifti içerir.

Dekont

Power BI.csv dosyaları, SQL veritabanları, Azure blob depolama ve daha fazlası gibi çok çeşitli kaynaklardan verileri kullanabilir.

Ana Power BI Desktop penceresinde Ana Sayfa şeridini seçin. Şeridin Dış veri grubunda Veri Al açılan menüsünü açın ve Excel'i seçin.

An image of the

İletişim kutusu görüntülendikten sonra örnek .xlsx dosyasını indirdiğiniz klasöre gidin ve dosyayı seçin. Gezgin iletişim kutusu görüntülendikten sonra Sayfa1'i ve ardından Düzenle'yi seçin.

An image of the data source

Power BI, ilk sütundaki zaman damgalarını bir Date/Time veri türüne dönüştürür. bu zaman damgalarının Anomali Algılayıcısı API'sine gönderilebilmesi için metne dönüştürülmesi gerekir. Power Query düzenleyicisi otomatik olarak açılmazsa giriş sekmesinde Sorguları Düzenle'yi seçin.

Power Query Düzenleyicisi Dönüştür şeridini seçin. Herhangi Bir Sütun grubunda Veri Türü: açılan menüsünü açın ve Metin'i seçin.

An image of the data type drop down

Sütun türünü değiştirme hakkında bir bildirim aldığınızda, Geçerliyi Değiştir'i seçin. Daha sonra Giriş şeridinde Kapat ve Uygula veya Uygula'yı seçin.

Verileri göndermek ve yanıtı biçimlendirmek için bir işlev oluşturma

Veri dosyasını biçimlendirmek ve Anomali Algılayıcısı API'sine göndermek için, yukarıda oluşturulan tabloda bir sorgu çağırabilirsiniz. Power Query Düzenleyicisi Giriş şeridinde Yeni Kaynak açılan menüsünü açın ve Boş Sorgu'yu seçin.

Yeni sorgunuzun seçili olduğundan emin olun ve Gelişmiş Düzenleyici seçin.

An image of the

Gelişmiş Düzenleyici aşağıdaki Power Query M kod parçacığını kullanarak tablodaki sütunları ayıklayın ve API'ye gönderin. Daha sonra sorgu, JSON yanıtından bir tablo oluşturur ve döndürür. değişkenini apiKey geçerli Anomali Algılayıcısı API anahtarınız ve endpoint uç noktanızla değiştirin. Sorguyu Gelişmiş Düzenleyici girdikten sonra Bitti'yi seçin.

(table as table) => let

    apikey      = "[Placeholder: Your Anomaly Detector resource access key]",
    endpoint    = "[Placeholder: Your Anomaly Detector resource endpoint]/anomalydetector/v1.0/timeseries/entire/detect",
    inputTable = Table.TransformColumnTypes(table,{{"Timestamp", type text},{"Value", type number}}),
    jsontext    = Text.FromBinary(Json.FromValue(inputTable)),
    jsonbody    = "{ ""Granularity"": ""daily"", ""Sensitivity"": 95, ""Series"": "& jsontext &" }",
    bytesbody   = Text.ToBinary(jsonbody),
    headers     = [#"Content-Type" = "application/json", #"Ocp-Apim-Subscription-Key" = apikey],
    bytesresp   = Web.Contents(endpoint, [Headers=headers, Content=bytesbody, ManualStatusHandling={400}]),
    jsonresp    = Json.Document(bytesresp),

    respTable = Table.FromColumns({

                     Table.Column(inputTable, "Timestamp")
                     ,Table.Column(inputTable, "Value")
                     , Record.Field(jsonresp, "IsAnomaly") as list
                     , Record.Field(jsonresp, "ExpectedValues") as list
                     , Record.Field(jsonresp, "UpperMargins")as list
                     , Record.Field(jsonresp, "LowerMargins") as list
                     , Record.Field(jsonresp, "IsPositiveAnomaly") as list
                     , Record.Field(jsonresp, "IsNegativeAnomaly") as list

                  }, {"Timestamp", "Value", "IsAnomaly", "ExpectedValues", "UpperMargin", "LowerMargin", "IsPositiveAnomaly", "IsNegativeAnomaly"}
               ),

    respTable1 = Table.AddColumn(respTable , "UpperMargins", (row) => row[ExpectedValues] + row[UpperMargin]),
    respTable2 = Table.AddColumn(respTable1 , "LowerMargins", (row) => row[ExpectedValues] -  row[LowerMargin]),
    respTable3 = Table.RemoveColumns(respTable2, "UpperMargin"),
    respTable4 = Table.RemoveColumns(respTable3, "LowerMargin"),

    results = Table.TransformColumnTypes(

                respTable4,
                {{"Timestamp", type datetime}, {"Value", type number}, {"IsAnomaly", type logical}, {"IsPositiveAnomaly", type logical}, {"IsNegativeAnomaly", type logical},
                 {"ExpectedValues", type number}, {"UpperMargins", type number}, {"LowerMargins", type number}}
              )

 in results

Parametre Girin'in altında bulunan Sorguyu veri sayfanızda çağırın Sheet1 ve Çağır'ı seçin.

An image of the invoke function

Önemli

İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

Veri kaynağı gizliliği ve kimlik doğrulaması

Dekont

Kuruluşunuzun veri gizliliği ve erişim ilkelerine dikkat edin. Daha fazla bilgi için bkz . Power BI Desktop gizlilik düzeyleri .

Dış veri kaynağı kullandığından sorguyu çalıştırmayı denediğinizde bir uyarı iletisi alabilirsiniz.

An image showing a warning created by Power BI

Bunu düzeltmek için Dosya ve Seçenekler ve ayarlar'ı seçin. Ardından Seçenekler'i seçin. Geçerli Dosya'nın altında Gizlilik'i seçin ve Gizlilik Düzeylerini yoksayın ve performansı geliştirin.

Ayrıca, API'ye nasıl bağlanmak istediğinizi belirtmenizi isteyen bir ileti alabilirsiniz.

An image showing a request to specify access credentials

Bunu düzeltmek için iletide Kimlik Bilgilerini Düzenle'yi seçin. İletişim kutusu göründükten sonra ANONIM'i seçerek API'ye anonim olarak bağlanın. Ardından Bağlan'ı seçin.

Daha sonra, değişiklikleri uygulamak için Giriş şeridinde Kapat ve Uygula'yı seçin.

Anomali Algılayıcısı API yanıtını görselleştirme

Ana Power BI ekranında, verileri görselleştirmek için yukarıda oluşturulan sorguları kullanmaya başlayın. İlk olarak Görsel Öğeler'de Çizgi Grafik'i seçin. Ardından çağrılan işlevden zaman damgasını çizgi grafiğin Eksenine ekleyin. Buna sağ tıklayın ve Zaman Damgası'yı seçin.

Right-clicking the Timestamp value

Çağrılan İşlev'den aşağıdaki alanları grafiğin Değerler alanına ekleyin. Grafiğinizi oluşturmanıza yardımcı olması için aşağıdaki ekran görüntüsünü kullanın.

  • Değer
  • UpperMargins
  • LowerMargins
  • ExpectedValues

An image of the chart settings

Alanları ekledikten sonra grafiği seçin ve tüm veri noktalarını gösterecek şekilde yeniden boyutlandırın. Grafiğiniz aşağıdaki ekran görüntüsüne benzer olacaktır:

An image of the chart visualization

Anomali veri noktalarını görüntüleme

Power BI penceresinin sağ tarafında, ALANLAR bölmesinin altında, Çağrılan İşlev sorgusunun altındaki Değer'e sağ tıklayın ve Yeni hızlı ölçü'yü seçin.

An image of the new quick measure screen

Görüntülenen ekranda hesaplama olarak Filtrelenmiş değer'i seçin. Temel değeri olarak Sum of Valueayarlayın. Ardından Çağrılan İşlev alanlarından Filtre'ye sürükleyinIsAnomaly. Filtre açılan menüsünden seçinTrue.

A second image of the new quick measure screen

Tamam'ı seçtikten sonra, alanlarınızın listesinin en altında bir Value for True alanınız olur. Sağ tıklayın ve Anomali olarak yeniden adlandırın. Grafiğin Değerleri'ne ekleyin. Ardından Biçim aracını seçin ve X ekseni türünü Kategorik olarak ayarlayın.

An image of the format x axis

Biçim aracı ve Veri renkleri'ni seçerek grafiğinize renk uygulayın. Grafiğiniz aşağıdakine benzer olmalıdır:

An image of the final chart