Anomali tespiti için otomatik eşik tespiti


9

Bir dizi anormallik skoru ile çalışıyorum (arka plan bilgisayar ağlarında anomali tespitidir). Her dakika, ağın mevcut durumunun "beklenmedik" veya anormal olduğunu söyleyen anomali puanı . Puan ne kadar yüksek olursa, mevcut durum o kadar anormal olur. 5'e yakın puanlar teorik olarak mümkündür ancak neredeyse hiç gerçekleşmez.xt[0,5]

Şimdi bu anomali zaman serisi için otomatik olarak bir eşik belirleyen bir algoritma veya formül bulmak istiyorum . Bir anomali skoru bu eşiği aşar aşmaz bir alarm tetiklenir.

Aşağıdaki frekans dağılımı, 1 günden fazla bir anomali zaman serisi için bir örnektir. Ancak, her anomali zaman serisinin böyle görüneceğini varsaymak güvenli değildir . Bu özel örnekte .99-kantil gibi bir anomali eşiği anlamlı olacaktır çünkü en sağdaki birkaç puan anomali olarak kabul edilebilir.

resim açıklamasını buraya girin

Ve zaman serisiyle aynı frekans dağılımı (zaman serisinde daha yüksek anomali skorları olmadığından sadece 0 ile 1 arasında değişir):

Zaman serisi

Ne yazık ki, frekans dağılımı .99-kantilinin yararlı olmadığı şekillere sahip olabilir . Aşağıda bir örnek verilmiştir. Sağ kuyruk çok düşüktür, bu nedenle .99-kantil eşik olarak kullanılırsa, bu birçok yanlış pozitifle sonuçlanabilir. Bu frekans dağılımı anomaliler içermiyor gibi gözüküyor, bu nedenle eşik dağılımın dışında 0.25 civarında olmalıdır.

resim açıklamasını buraya girin

Özetle, bu iki örnek arasındaki fark, birincisinin anormallikler sergilediği, ikincisinin ise görünmediğidir.

Saf bakış açısından, algoritma bu iki durumu göz önünde bulundurmalıdır:

  • Frekans dağılımının büyük bir sağ kuyruğu varsa (yani birkaç anormal skor), .99-kantil iyi bir eşik olabilir.
  • Frekans dağılımının çok kısa bir sağ kuyruğu varsa (yani anormal skorlar yoksa), eşik dağılımın dışında olmalıdır.

/ edit: Ayrıca temel bir gerçek yoktur, yani etiketli veri kümeleri mevcuttur. Dolayısıyla algoritma, anomali skorlarının doğasına karşı "kördür".

Şimdi bu gözlemlerin bir algoritma veya formül açısından nasıl ifade edilebileceğinden emin değilim. Bu sorunun nasıl çözülebileceğine dair bir önerisi olan var mı? İstatistiksel geçmişim çok sınırlı olduğu için açıklamalarımın yeterli olacağını umuyorum.

Yardımın için teşekkürler!


Sadece bir not, ilk grafik benim için normal bir şey gibi görünmüyor.
mpiktas

1
@cryptron, anahtar soru ses eşiğinin ne olduğudur . Örneğin, yükseltilmiş her alarm ve yükseltilmemiş alarm belirli maliyetlere maruz kalırsa, eşik toplam maliyetleri en aza indirecek şekilde seçilebilir. Bunun için maliyet verilerine ihtiyacımız var. Sesin kesin tanımı olmadan eşiği seçmek için seçilen yöntemin nasıl değerlendirileceğini ölçmek imkansızdır.
mpiktas

@mpiktas: İtiraf etmeliyim ki, "ses" kelimesi bu bağlamda talihsiz bir durumdu çünkü eşiği titizlikle değerlendirmenin bir yolu yok (bu yüzden onu düzenledim). Temel olarak, eşiğin yanlış pozitifleri en aza indirmesi beklenir, çünkü bunlar ağ anomali tespitindeki yanlış negatiflerden çok daha maliyetlidir.
cryptron

@cryptron, yanlış pozitif nedir hakkında herhangi bir veri var mı?
mpiktas

1
Arsalarınızla kafam karıştı. Bu, değer alan tek değişkenli bir zaman serisi ? Yoksa mı? (ilk grafiğinizdeki x eksenine bakmaktan). Bir traceplot da daha yararlı olacaktır. Örneğin, uzun bir süre boyunca mı yoksa kısa patlamalarda mı (yoksa her ikisinde de) yüksek puanlar alıyor musunuz? Her ikisi de, biri diğerinden daha rahatsız mı? Veriler için makul bir model koyabilirseniz, monte edilen dağıtımdan teorik nicelikleri kullanabilirsiniz, bu da örnek niceliklerle tanımladığınız sorunu çözecektir. {xt}0<xt50<xt0.5
JMS

Yanıtlar:


2

Bu ilgi belgesini bulabilirsiniz . West & Harrison'da benzer modellerin daha ayrıntılı sunumuna bakın . Bu tür bir izlemenin başka örnekleri de var, bunların çoğu daha yeni, ancak bu tam olarak benim tekerlekli evim değil :). Kuşkusuz bu modellerin uygun uygulamaları var, ancak ne kadar hazırlıksız olabileceğini bilmiyorum ...

Temel fikir, bazı gözlemlerin / gözlem dizisinin geri kalanı normal kabul edilirken anormal ağ durumlarıyla ilişkilendirildiği bir anahtarlama modeline sahip olmanızdır. Bunun gibi bir karışım, ilk planınızdaki uzun sağ kuyruğu açıklayabilir. Dinamik bir model, bir sorun durumuna ait yeni gözlemlere yüksek olasılık atayarak, gerçek zamanlı olarak 8:00 ve 4:00 gibi anormal sıçramalara karşı sizi uyarabilir. Ayrıca yordayıcılar, periyodik bileşenler (belki de puanınız etkinlikle biraz yükselir / düşer) ve bu tür şeyleri içerecek şekilde kolayca genişletilebilir.

Düzenleme: Ben de eklemeliyim, bu tür bir model anormalliklerin büyük bir ortalama kayma veya varyans artışı göstererek yakalandığı anlamında "denetimsiz" dir. Veri toplarken daha bilgilendirici önceki dağıtımlarla modeli geliştirebilirsiniz. Ancak belki de yeterli veriye sahip olduğunuzda (ve ağ sorunlarıyla başa çıkarak zor kazanılan eğitim örnekleri!) Bazı basit izleme kurallarını (eşikler, vb.)


1

Neyin bir anomali oluşturduğuna dair 'etiketli' örnekleriniz var mı? yani bir ağ arızasıyla ilişkili değerler ya da bunun gibi bir şey?

Uygulamayı düşünebileceğiniz bir fikir, gerçek pozitifleri en üst düzeye çıkarmak veya yanlış negatifleri en aza indirmek gibi belirli bir ölçütleri karşılayan eşyalar seçmek için yararlı olan bir ROC eğrisidir.

Tabii ki, bir ROC eğrisi kullanmak için verilerinizi bir şekilde etiketlemeniz gerekir.


1
Maalesef, etiketlenmiş veri setim yok. Uzun kuyrukların veya aykırı değerlerin veri kümesindeki anormallikleri gösterdiğine dair yalnızca varsayım vardır.
cryptron

@cryptron Anlıyorum. Yani ihtiyacınız olan şey aykırı değerleri dinamik olarak tanımlamanın bir yoludur.
Zach

Bu sorunun bir kısmını çözecektir, evet.
cryptron

1

"Orijinal serilerin" grafiğinin önceden tanımlanmış bir yapı sergilemesi gerekmez. Kritik olan, "uygun bir model serisinden artıklar" grafiğinin bir gauss yapısı göstermesi gerektiğidir. Bu "gauss yapısı" genellikle aşağıdaki "dönüşümlerden" bir veya daha fazlasını dahil ederek elde edilebilir 1. bir arima MODEL 2. Yerel Seviye Geçişler veya Yerel Zaman Eğilimleri veya Mevsimsel Darbeler veya Sıradan Darbeler için ayarlamalar 3. kanıtlanmış varyans heterojenliğinden yararlanan ağırlıklı bir analiz 4. belirli bir varyans heterojenliği ile başa çıkmak için olası bir güç dönüşümü (loglar vb.) 5. Model / parametrelerin değişmiş olabileceği zaman noktalarının tespiti.

Müdahale Tespiti, en son olayın normalliği veya bir anomali olduğunu gösteren istatistiksel önemi hakkında bir açıklama verecektir.


0

OP'nin önceki cevabıma verdiği yanıtta, verilerini web'e gönderdi. 6 gün boyunca 24 saat boyunca saatte 60 okuma . Bu zaman serisi olduğundan, DBSCAN gibi veriler zamansal bağımlılığa sahip olduğu için sınırlı bir ilgiye sahiptir. Bunun gibi verilerle normalde saat içi ve gün içi yapı arar. Bu tür yapılara ek olarak, iyi belgelenmiş yöntemler kullanılarak ya sadece bir kez (nabız) ​​ya da doğada sistematik (seviye kayması) olabilen anormalliklerin saptanması takip edilebilir (bakınız Tsay, Tiao, Chen ve ark. al.) Bu prosedürler aşağıdaki "anormallikleri" verdi. en iyi tanımlanmış anomaliler

                                HOUR/MINUTE     TIME

-1

Bir arkadaşım beni kümeleme algoritmalarının yönüne yönlendirdikten sonra , önceden tanımlanmış iki parametreye göre n boyutlu uzayda kümeler oluşturan DBSCAN'a rastladım . Temel fikir yoğunluk temelli kümelemedir, yani yoğun bölgeler kümeler oluşturur. Aykırı değerler algoritma tarafından ayrı olarak döndürülür. Böylece, 1 boyutlu histogramıma uygulandığında DBSCAN, anomali puanlarımın herhangi bir aykırı değer içerip içermediğini söyleyebilir. Not: DBSCAN'da, bir aykırı değer herhangi bir kümeye ait olmayan bir noktadır. Normal işlemler sırasında, algoritmanın sadece tek bir küme (ve aykırı değer) vermesini beklemiyorum.

Bazı deneylerden sonra, parametrelerin ε0.1iyi çalışıyor. Bu, noktaların "normal" kümeye en uç değer olarak görülmesi için en az 0.1'lik bir mesafe sergilemesi gerektiği anlamına gelir.

Aykırı değerleri belirledikten sonra, eşiği bulmak aşağıdaki gibi basit kurallara bağlıdır:

  • Kümede aykırı değerler varsa, "normal" ve "aykırı" küme arasındaki eşiği ayarlayın, böylece her ikisinin kenar boşluğu en üst düzeye çıkar.
  • Set herhangi bir aykırı değer göstermiyorsa, eşiği en sağdaki noktadan bir standart sapma uzağa ayarlayın.

Neyse, tüm yararlı cevaplar için teşekkürler!


@crypton DBSCAN otokorelasyonlu serilerle nasıl başa çıkıyor? Örneğin, 1,9,1,9,1,9,5 zaman serilerinin bir iç / olağandışı değeri olacaktır. Serideki Seviye Kaymaları veya bir dizi olası trendle mi ilgileniyor? Her ayın Haziran ayının dizinin "düzenli", her Haziran ayının ise "büyük" olduğunu söyleyen mevsimsel otoregresif verilerle nasıl başa çıkılır. "Büyük Haziran değerleri" aykırı değer olarak algılanıyor mu? Sadece merak !
IrishStat

2
@IrishStat Temel olarak, DBSCAN n boyutlu uzayda noktaları kümeler. Bu nedenle zaman serisi analizine uygunluğu çok sınırlıdır. Özel durumum için işe yarar çünkü benim (1 boyutlu) histogramımda sadece tek bir küme bekliyorum. Sorularınızı cevaplamak için: Uygun parametreleri kullanırken, örneğinizin 5 değeri aykırı olarak algılanır. Sanırım trendlerle başa çıkabilir, ama '1, 2, 3, 4, 5, 6, 7, 2' zaman serilerinde, 2 değeri aykırı sayılmaz! Umarım, bu DBSCAN'ın yetenekleri ve sınırlamaları hakkında kabaca bir fikir verir.
cryptron

1
@crypton Bilgi için teşekkürler. Bana öyle geliyor ki 1 kümeye başvurduğunuzda 1 ve sadece 1 ortalama demek istiyorsunuz. Verilerinizde ortalama otokorelasyonda herhangi bir değişiklik olmamasına rağmen, "zaman serisini", DBSCAN'ın sinyali anormal verilerin verimli bir şekilde tanımlanmasına neden olan gürültüden ayırmayı düşündüğünüz kadar yararlı olmayabileceğini düşündürmektedir.
IrishStat

1
@crypton Bana öyle geliyor ki, bir küme, bu değerler etrafında bazı küçük sapmalar ile 1,1,1,1,2,2,2,2 diyen bir zaman serisine kıyasla 1 ortalama ifade ediyor.
IrishStat

2
@crpton Sanırım bir zaman serisi problemi için kesitsel bir araç kullanıyorsunuz. Gerçek verileri gönderin ve size zaman serisi analizi ile anomali tespitini göstermeye çalışacağım
IrishStat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.