Aracılığıyla paylaş


Zaman Serisi Anomali Algılama

Önemli

Machine Learning Stüdyosu (klasik) desteği 31 Ağustos 2024'te sona erecektir. Bu tarihe kadar Azure Machine Learning'e geçmenizi öneririz.

1 Aralık 2021'den başlayarak artık yeni Machine Learning Stüdyosu (klasik) kaynakları oluşturamayacaksınız. 31 Ağustos 2024'e kadar mevcut Machine Learning Stüdyosu (klasik) kaynaklarını kullanmaya devam edebilirsiniz.

ML Stüdyosu (klasik) belgeleri kullanımdan kaldırılacak ve gelecekte güncelleştirilmeyecektir.

Giriş zaman serisi verilerindeki anomalileri algılar.

Kategori: Zaman Serisi

Not

Şunlar için geçerlidir: yalnızca Machine Learning Studio (klasik)

Benzer sürükle ve bırak modülleri de Azure Machine Learning tasarımcısında kullanılabilir.

Modüle genel bakış

Bu makalede, zaman serisi verilerindeki anomalileri algılamak için Machine Learning Studio'da (klasik) Zaman Serisi Anomali Algılama modülünün nasıl kullanılacağı açıklanmaktadır. Modül, giriş olarak sağladığınız bir zaman serisinin normal çalışma özelliklerini öğrenir ve bu bilgileri normal desenden sapmaları algılamak için kullanır. Modül hem genel eğilimdeki değişiklikleri hem de değer aralığındaki değişiklikleri algılayabilir.

Zaman serisi verilerindeki değişiklikleri algılamanın geniş uygulamaları vardır. Örneğin, algılayıcıların, ağların veya kaynak kullanımının neredeyse gerçek zamanlı olarak izlenmesi için bu özelliği kullanabilirsiniz. Hizmet hatalarını, hizmet kullanımını ve diğer KPI'leri izleyerek kritik anomalilere hızlı bir şekilde yanıt vererek. Diğer uygulamalar sağlık ve finanstır.

Anomali algılama yöntemleri

Anomali algılama, verilerdeki "normal" davranış modeline uymayan desenleri bulma sorunudur. Bu tür değişiklikleri algılamaya yönelik tipik yaklaşımlar, verilerin ortalamadan önemli ölçüde sapmasını belirlemek için basit insan tarafından hesaplanan eşikler veya ortalama ve standart sapma kullanır.

Ancak, bu tür basit yaklaşımlar zaman serisi verilerine kolayca uyarlanmaz:

  • Çok sayıda yanlış anomali oluşturulur

  • Yöntemler, veri değerlerini değiştirmek için geçerli değildir

  • Büyük zaman serisine kolayca ölçeklendirilemiyor

Bu modül, bir zaman serisi eğiliminden varyansı değerlendirmek için iki ek yöntem sağlar:

  • Yukarı ve aşağı doğru değişikliklerin büyüklüğünü ölçme

    Örneğin, bir web hizmetindeki istek sayısı bir süre için en iyi duruma getirilebilir ve ardından önemli ölçüde artabilir.

  • Eğilimlerin yönünü ve süresini ölçme: pozitif ve negatif değişiklikler

    Örneğin, bir hizmet kuyruğunun uzunluğundaki kalıcı bir yukarı doğru eğilim, temel alınan bir sorunu gösterebilir. Genel eğilim tutarlı bir şekilde artsa ve bu nedenle kararlı olarak kabul edilebilse de, eğimdeki bir değişiklik anomali olarak işaretlenebilir. Buna karşılık, bir sunucunun bellek kullanımını izliyorsanız, boş bellek boyutundaki sabit bir azalma bir sorunu gösterebilir.

Zaman serisindeki anormal desen örnekleri

Yukarı ve aşağı düzey değişiklikleri

Örneğin, bir web hizmetine yönelik günlük istek sayısını belirli bir süre boyunca izlediğinizi ve isteklerin sayısının belirli bir aralıkta kaldığını varsayalım. Ancak, web hizmetinde yapılan bir güncelleştirmeden sonra, bu web hizmetine yönelik istek sayısı değişir. Yeni eğilim, özgün eğilimden daha yüksek veya daha düşük olabilir; hem yukarı hem de aşağı doğru ani artışlar algılanabilir.

upward and downward level changes

Pozitif veya negatif eğilim değişiklikleri

Örneğin, bir hizmet destek sitesindeki kuyruğun uzunluğunu izlediğinizi varsayalım. Kalıcı bir yukarı doğru eğilim, temel alınan bir hizmet sorununa işaret edebilir.

Diğer durumlarda, kalıcı bir negatif eğilim anomali olabilir. Örneğin, bir sunucuda bellek kullanımını izliyorsanız, boş bellek boyutu küçülürse, bu olası bir bellek sızıntısına işaret edebilir.

positive or negative trend change

Kaynaklar

Bu yaklaşımı temel alan araştırma hakkında daha fazla bilgi için şu makalelere bakın:

Zaman Serisi Anomali Algılamayı yapılandırma

  1. Denemenize Zaman Serisi Anomali Algılama modülünü ekleyin ve zaman serisini içeren veri kümesini bağlayın.

    Giriş olarak kullanılan veri kümesi, dize biçiminde tarih saat değerlerini içeren en az bir sütun ve eğilim değerlerini içeren başka bir sütunu sayısal biçimde içermelidir. Diğer sütunlar yoksayılır.

    Her satır, o zamandaki değeri temsil eden zaman serisindeki bir veri noktasına karşılık geldiğinden, zaman değerleri benzersiz olmalıdır.

  2. Veri Sütunu: Veri kümenizde sayısal veri değerleri içeren tek bir sütun seçin. Bu değerler, zaman içindeki nüfus toplamları, aylık maliyetler veya bir dönem içindeki sıcaklıklar gibi modellemek istediğiniz eğilimdeki veri noktalarıdır.

  3. Zaman Sütunu: Veri kümenizde ilişkili zaman serisi değerini içeren tek bir sütun seçin.

    Sütun geçerli tarih saat değerleri içermelidir; başka bir deyişle tüm tarihler .NET Framework tarafından desteklenen tarih aralığında olmalıdır.

    Time sütunu DateTime veri türünü kullanmalıdır. Tarihleriniz dize biçimindeyse, Bunları Dönüştürmeyi Uygula modülünü kullanarak SQL dönüştürebilir veya R Betiği Yürütme modülünü kullanarak dönüştürebilirsiniz. Tarihleriniz tamsayı olarak gösteriliyorsa, değerleri geçerli bir tarih saat biçimi kullanarak göstermek için uygun bir tarih saat dönüştürme işlevi de kullanmanız gerekir.

    Örneğin, aşağıdaki SQL deyimi Excel seri tarih değerini tarih saat biçimine değiştirir:

     SELECT CAST([SerialDate]  AS SmallDateTime) as [NewValidDate] from t1;  
    

    Tarih değerleri doğru biçimde olduktan sonra, sütun türünü DateTime olarak ayarlamak için Meta Verileri Düzenle modülünü kullanın.

  4. Martingale Türü: Kullanılacak martingale işlevini seçin.

    • PowerAvg. Bu seçenek, power martingale'in marjinalleştirilmiş bir uygulamasıdır.

      Varsayılan değer, ek parametre içermeyen PowerAvg'dir . Bu seçenek daha kararlı bir anomali algılayıcısı sağlar ve çoğu ihtiyaç için uygun olmalıdır.

    • Güç. Güç martingalesinin marjinalleştirilmemiş bir uygulaması.

      Güç seçeneği, kullanıcılara detektörün duyarlılığını denetlemek için Epsilon parametresi için 0 ile 1 arasında bir değer sağlama seçeneği sağlar. Genellikle, daha yüksek bir epsilon değeri anomalilere daha yüksek duyarlılık ancak daha az kesinlik anlamına gelir.

    Martingallerin tanımı ve bu modülde kullanılan yöntemler için bkz. Zaman serisi verilerindeki anormallikleri algılamak için makine öğrenmesini kullanarak anomali algılama

  5. Gariplik İşlev Türü: Bu seçenek belirli anomali türleri için kullanılır. Ek parametre gerektirmeyen üç seçenek desteklenir:

    • RangePercentile.

      Bu varsayılandır ve çoğunlukla düzey değişikliklerini algılamak için kullanılır.

    • SlowPosTrend. Pozitif eğilim değişikliklerini algılamak için bu seçeneği belirleyin.

    • SlowNegTrend. Negatif eğilim değişikliklerini algılamak için bu seçeneği belirleyin.

  6. Martingale ve Gariplik Değerlerinin Uzunluğu: Geçmiş penceresinin boyutunu belirtin. Bu pencere, geçmişe bakma geçmişindeki martingale değerlerini hesaplamak için kullanılır.

    Varsayılan değer 500'dür, ancak 0 ile 5000 arasında herhangi bir tamsayı belirtebilirsiniz. Büyük zaman serisi için varsayılan değerin düzgün çalışması gerekir. Daha küçük bir zaman serisi için, anormal davranışın beklenen uzunluğu için değeri tahmin etmeyi deneyebilirsiniz.

    Bu iki parametreyi genel olarak aynı değere ayarlamanızı öneririz.

  7. Gariplik Değerlerinin Uzunluğu: Her veri noktasında garipliği hesaplamak için kullanılan geçmiş penceresinin uzunluğunu belirtin.

    Varsayılan değer 500'dür, ancak 0 ile 5000 arasında herhangi bir tamsayı belirtebilirsiniz.

    Bu parametre, Martingale Uzunluğu ile aynı kısıtlamalara sahiptir. Başka bir ifadeyle, değeri "normal" davranışı öğrenmek için gereken tahmini veri noktası sayısına ayarlamanız gerekir.

    Varsayılan değer olan 500 çoğu durumda işe yarar, ancak "normalliğin" ölçüldiği ölçek değişirse, Gariplik Değerlerinin Uzunluğu değerini Martingale Uzunluğundan daha büyük bir değer haline getirmek yararlı olabilir.

    Örneğin, hataları izliyorsanız ve veri noktalarının 15 dakikalık aralıklarla yakalandığını varsayarsanız, normal eğilimi öğrenmek için gereken süre aydan aya büyük ölçüde değişebilir.

    Genel olarak, modülün daha büyük bir veri kümesini öğrenmesi gerekdiğinden, daha büyük bir pencere boyutunun kullanılması performansın yavaşlamasına neden olur.

    Bu iki parametreyi genel olarak aynı değere ayarlamanızı öneririz.

  8. Uyarı Eşiği: Anomali puanının bir uyarı oluşturacağı değeri belirtin.

    Varsayılan değer 3,25'tir, yani 3,25 veya daha fazla puan içeren her satır için bir uyarı oluşturulur. Y

    0 ile 100 arasında herhangi bir kayan nokta numarası belirtebilirsiniz. Ancak eşik seçiminde duyarlılık ve güvenilirlik arasında bir denge vardır:

    • Daha düşük bir eşik, algılayıcının anomalilere karşı daha hassas olmasını ve daha fazla uyarı oluşturmasını sağlar.

    • Daha düşük bir eşik, normal değişikliklerin anomali olarak yanlış sınıflandırılmasıyla sonuçlanabilir.

  9. Denemeyi çalıştırın.

    Bu modeli ayrı olarak eğitmeniz gerekmediğini unutmayın; algoritma, bu modüle giriş olarak sağladığınız verilerden deseni öğrenir.

Sonuçlar

Eğitim tamamlandığında modül, giriş zaman serisiyle aynı uzunlukta bir zaman serisi verir; ancak, anormal olabilecek değerleri göstermek için iki sütun eklenir.

  • Anomali Puanı: İlk sütun, zaman serisi değerinin anormal olma olasılığını temsil eden bir puan içerir.

  • Uyarı: Bu sütun 0 veya 1 değerine sahip bir bayrak içerir; burada 1, anomali algılandığı anlamına gelir. Uyarıyı oluşturmak için eşiği puan sütununa göre ayarlayabilir, ancak Uyarı Eşiği parametresini ayarlayabilirsiniz.

Örnekler

Aşağıdaki örneklerde, anomalileri algılamak için martingale işlevinin nasıl ayarlanacağı ve sonuçların nasıl yorumlanacağı gösterilmektedir.

Düzey değişikliklerini algılama

Farklı ayarların etkisini göstermek için, bu örnekte kullanılan örnek veri kümesi üç düzey değişiklikle birlikte 8870 veri noktasından oluşur. Bu verilere dayanarak aşağıdaki parametreleri kullanarak iki model oluşturduk.

  • Martingale Türü: PowerAvg

  • Strangeness işlev türü: RangePercentile

  • Martingale uzunluğu = 50

  • Gariplik Değerlerinin Uzunluğu = 50

Model gelen veriler üzerinde eğitildi, ancak Uyarı Eşiği için farklı bir değer uygulandı. Tahmin sonuçları, Model 1 ve Model 2 için aşağıdaki görüntülerde çizilmiştir. Bu grafiklerde mavi çizgiler veri değerlerini, kırmızı çizgiler ise anomali için tetiklenen uyarıları temsil eder.

Uyarı eşiği 0,9

level change with alert of 0.9

Bu modelde eşik değeri daha düşüktür ve bu nedenle değişiklikler anlık olduğunda bile uyarılar tetiklenir (anomaliler algılanır).

İzlediğiniz zaman serisinin türüne bağlı olarak, bu uyarılardan bazıları yanlış uyarılar olarak kabul edilebilir. Ancak, herhangi bir anomaliyi gözden kaçırmayı göze alamazsanız daha düşük bir eşik tercih edilebilir.

Uyarı eşiği 3,25

level change with alert of 3.25

Bu modelde uyarı eşiği çok daha yüksekti ve sonuç olarak model yalnızca daha uzun süre kalıcı olan değişiklikleri algılar. Yalnızca daha uzun süreli değişiklikleri yakalamak istediğiniz bir senaryoda uyarı için daha yüksek bir eşik daha fazla tercih edilebilir.

Pozitif eğim değişikliklerini algılama

Anomali algılamaya yönelik bu seçeneği göstermek için 300 veri noktası içeren örnek bir veri kümesi kullandık. Tüm noktalar, iki anomali ile genel olarak pozitif bir eğilim oluşturdu.

Yine, uyarı eşik değeri dışında aynı olan parametreleri kullanarak iki model oluşturduk.

  • Martingale Türü: PowerAvg

  • Strangeness işlev türü: SlowPosTrend

  • Martingale uzunluğu = 50

  • Gariplik Değerlerinin Uzunluğu = 50

Bu grafiklerde mavi çizgiler veri değerlerini, kırmızı çizgiler ise anomali için tetiklenen uyarıları temsil eder.

Uyarı Eşiği 4,25

positive trend with alert of 4.25

Uyarı Eşiği 6.0

positive trend with alert threshold of 6.0

Anomali algılama senaryonuza uygun duyarlılık düzeyini bulmak için farklı uyarı eşiği değerleriyle denemeler gerçekleştirmenizi öneririz.

Beklenen girişler

Ad Tür Description
Zaman damgaları ve değerleri içeren giriş verileri Veri Tablosu Tarih-saat damgaları ve değerleri içeren giriş verileri.

Modül parametreleri

Ad Tür Aralık İsteğe Bağlı Varsayılan Description
Değer Sütunu ColumnSelection Gerekli İzlenen zaman serisini içeren sütunu seçin
Pencere Boyutu Tamsayı Gerekli Analiz penceresinin boyutunu denetleen bir değer belirtin
Eşik Float İsteğe Bağlı Anomaliyi tanımlamak için puan üzerindeki eşiği belirleyen bir değer belirtin

Çıkışlar

Ad Tür Description
Anomali puanları ile açıklama ek açıklamalı zaman serisi Veri Tablosu Anomali aralıkları olan veri kümesi.

Ayrıca bkz.

Anomali Algılama
Tek Sınıf Destek Vektör Makinesi
PCA Tabanlı Anomali Algılama