öğretici: toplu algılama ve Power BI (tek değişkenli) kullanarak anomali görselleştirin
Toplu iş olarak ayarlanan zaman serisi verilerinin içindeki bozukluklar bulmak için bu öğreticiyi kullanın. Power BI masaüstü 'nü kullanarak, bir Excel dosyası alıp, anomali algılayıcı apı 'sine yönelik verileri hazırlayacak ve bunun genelinde istatistiksel anormallikleri görselleştirecaksınız.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- zaman serisi veri kümesini içeri ve dışarı dönüştürmek için Power BI Desktop kullanma
- batch anomali algılama için anomali algılayıcı apı 'siyle Power BI Desktop tümleştirme
- Beklenen ve görülen değerler ve anomali algılama sınırları dahil olmak üzere verilerinizde bulunan anormallikleri görselleştirin.
Önkoşullar
- Azure aboneliği
- Microsoft Power BI Desktopücretsiz olarak kullanılabilir.
- Zaman serisi veri noktaları içeren bir Excel dosyası (.xlsx). Bu hızlı başlangıç için örnek veriler GitHub bulunabilir
- Azure aboneliğiniz olduktan sonra anahtar ve uç noktanıza ulaşmak için Azure Portal bir anomali algılayıcı kaynağı oluşturun.
- Uygulamanızı anomali algılayıcı API 'sine bağlamak için oluşturduğunuz kaynaktaki anahtar ve uç nokta gerekir. Bunu daha sonra hızlı başlangıçta yapacaksınız.
Not
Anomali algılayıcı API 'sini kullanırken en iyi sonuçlar IÇIN, JSON biçimli zaman serisi verileriniz şunları içermelidir:
- beklenen sayıda noktadan daha fazla %10 ' dan fazla olan, aynı aralıkla ayrılmış veri noktaları.
- en az 12 veri noktası, veriniz bir mevsimlik düzenine sahip değilse.
- verilerinizin bir açık mevsimlik düzenine sahip olması durumunda en az 4 desenli yineleme.
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 çiftleri içerir.
Not
Power BI, .csv dosyaları, SQL veritabanları, Azure blob depolama ve daha fazlası gibi çok çeşitli kaynaklardan verileri kullanabilir.
ana Power BI Desktop penceresinde, giriş şeridi ' ne tıklayın. Şeridin dış veri grubunda, veri al açılır menüsünü açın ve Excel' ye tıklayın.

İ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, Sheet1' e ve ardından Düzenle' ye tıklayın.

Power BI, ilk sütundaki zaman damgasını bir Date/Time veri türüne dönüştürür. Bu zaman damgaları, anomali algılayıcısı API 'sine gönderilmek üzere metne dönüştürülemelidir. Power Query Düzenleyicisi otomatik olarak açılmazsa Giriş sekmesinde sorguları Düzenle ' ye tıklayın.
Power Query düzenleyicisinde Dönüştür şeridine tıklayın. Herhangi bir sütun grubunda, veri türü: açılan menü menüsünü açın ve metin' i seçin.

Sütun türünü değiştirme hakkında bir bildirim aldığınızda, geçerli Değiştir' e tıklayın. Daha sonra, kapat & giriş şeridinde Uygula veya Uygula ' ya tıklayın.
Verileri göndermek ve yanıtı biçimlendirmek için bir işlev oluşturma
Veri dosyasını anomali algılayıcı API 'sine biçimlendirmek ve göndermek için yukarıda oluşturulan tabloda bir sorgu çağırabilirsiniz. Power Query düzenleyicisinde, giriş şeridinde, Yeni kaynak açılan menüsünü açın ve boş sorgu' ya tıklayın.
Yeni sorgunuzun seçili olduğundan emin olun ve ardından Gelişmiş Düzenleyici' ye tıklayın.

Gelişmiş Düzenleyici içinde, tablodaki sütunları ayıklamak ve API 'ye göndermek için aşağıdaki Power Query a kod parçacığını kullanın. Daha sonra sorgu, JSON yanıtından bir tablo oluşturur ve döndürür. apiKeyDeğişkeni geçerli anomali ALGıLAYıCı API anahtarınızla ve uç noktanızla değiştirin endpoint . Sorguyu Gelişmiş Düzenleyici girdikten sonra bitti' ye tıklayın.
(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
Aşağıdaki parametre girin ' i seçerek veri sayfanızda sorguyu Sheet1 çağırın ve çağır' a tıklayın.

Veri kaynağı gizliliği ve kimlik doğrulaması
Not
Veri gizliliği ve erişimi için kuruluşunuzun ilkelerine dikkat edin. daha fazla bilgi için bkz. Power BI Desktop gizlilik düzeyleri .
Bir dış veri kaynağı kullandığından sorguyu çalıştırmaya çalıştığınızda bir uyarı iletisi alabilirsiniz.

Bu hatayı onarmak için Dosya ve Seçenekler ve ayarlar' a tıklayın. Seçenekler' e tıklayın. Geçerli dosyanın altında Gizlilik' i seçin ve gizlilik düzeylerini yoksayın ve potansiyel olarak performansı geliştirebilirsiniz.
Ayrıca, API 'ye nasıl bağlanmak istediğinizi belirtmenizi isteyen bir ileti alabilirsiniz.

Bu hatayı onarmak için iletideki kimlik bilgilerini düzenle ' ye tıklayın. İletişim kutusu görüntülendikten sonra, API 'ye anonim olarak bağlanmak için anonim ' i seçin. Ardından Bağlan’a tıklayın.
Ardından, değişiklikleri uygulamak için giriş şeridindeki Kapat & Uygula ' ya tıklayın.
Anomali algılayıcı API 'SI yanıtını görselleştirin
ana Power BI ekranında, verileri görselleştirmek için yukarıda oluşturulan sorguları kullanmaya başlayın. Önce Görselleştirmelerde çizgi grafik ' i seçin. Sonra çağrılan işlevden zaman damgasını çizgi grafiğinin eksenine ekleyin. Sağ tıklayın ve zaman damgası' nı seçin.

Çağrılan işlevden aşağıdaki alanları grafiğin değerler alanına ekleyin. Grafiğinizi oluşturmaya yardımcı olması için aşağıdaki ekran görüntüsünü kullanın.
- Değer
- Üst Üstekenar boşlukları
- Harf kenar boşlukları
- ExpectedValues

Alanları ekledikten sonra grafiğe tıklayın 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 şekilde görünür:

Anomali veri noktalarını görüntüle
Power BI penceresinin sağ tarafında, alanlar bölmesinin altında, çağrılan işlev sorgusunun altındaki değere sağ tıklayın ve yeni hızlı ölçü' e tıklayın.

Görüntülenen ekranda, hesaplama olarak filtrelenmiş değer ' i seçin. Taban değerini olarak ayarlayın Sum of Value . Ardından IsAnomaly , çağrılan Işlev alanlarından filtrelemek için sürükleyin. True Filtre açılan menüsünden seçim yapın.

Tamam' a tıkladıktan sonra, Value for True alanlarınızın listesinin en altında bulunan bir alana sahip olursunuz. Sağ tıklayın ve anomali olarak yeniden adlandırın. Bunu grafiğin değerlerine ekleyin. Daha sonra Biçim aracını seçin ve X ekseni türünü kategorik olarak ayarlayın.

Biçim aracına ve veri renklerine tıklayarak, grafiğinize renkler uygulayın. Grafiğiniz aşağıdakine benzer görünmelidir:
