Öğ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
- Azure aboneliği
- Microsoft Power BI Desktop, ücretsiz olarak kullanılabilir.
- Zaman serisi veri noktalarını içeren bir Excel dosyası (.xlsx).
- Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir Anomali Algılayıcısı kaynağı oluşturun.
- Uygulamanızı Anomali Algılayıcısı API'sine bağlamak için oluşturduğunuz kaynaktan anahtara ve uç noktaya ihtiyacınız olacaktır. Bunu hızlı başlangıçta daha sonra yapacaksınız.
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.
İ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.
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.
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.
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.
Ö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.
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.
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.
Ç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
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:
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.
Görüntülenen ekranda hesaplama olarak Filtrelenmiş değer'i seçin. Temel değeri olarak Sum of Value
ayarlayın. Ardından Çağrılan İşlev alanlarından Filtre'ye sürükleyinIsAnomaly
. Filtre açılan menüsünden seçinTrue
.
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.
Biçim aracı ve Veri renkleri'ni seçerek grafiğinize renk uygulayın. Grafiğiniz aşağıdakine benzer olmalıdır: