🎯 Definicja

Anomaly Detection (wykrywanie anomalii) to proces identyfikacji nieoczekiwanych, nietypowych lub odstających wartości, trendów lub zachowań w danych. W kontekście zarządzania jakością danych, anomaly detection pozwala wykryć błędy, niezgodności i zjawiska, które odbiegają od spodziewanych wartości lub trendów historycznych.

🔑 Kluczowe punkty

  • 🔍 Anomaly detection wykrywa niespodziewane wartości (null, zero, liczby ujemne, przepięcia rozkładu), które mogą świadczyć o problemach z danymi źródłowymi lub przetwarzaniem.
  • ⚙️ Stosowane automatycznie po profilowaniu danych lub w ramach cyklicznego monitoringu DQ (Data Quality).
  • 📈 Wspiera dwa typy modeli:
    • Model niezależny od czasu – porównuje obserwację do rozkładu danych bez uwzględnienia trendów czasowych.
    • Model zależny od czasu (time-series) – identyfikuje anomalie względem trendów czasowych (potrzebuje min. 6 cykli profilu danych).
  • 🧠 Mechanizmy AI/ML stosowane są do wykrywania nietypowych wzorców bez predefiniowanych reguł.
  • 🚨 Detekcja anomalii może wywołać alerty i integrować się z systemami observability i dashboardami jakości danych.

📚 Szczegółowe wyjaśnienie

Jak działa Anomaly Detection?

Po zbieraniu metryk z profilowania danych system porównuje nowe wartości z poprzednimi wynikami lub ustalonymi normami. Model wykrywa anomalie w takich przypadkach jak:

  • gwałtowny spadek liczby rekordów (row_count),
  • wzrost liczby nulli (null_rate),
  • nieoczekiwana zmiana w rozkładzie wartości nominalnych (value_distribution),
  • pojawienie się nietypowych wartości (np. negatywne identyfikatory, 0, 9999999 jako cena).

Rodzaje modeli anomalii

TypOpisWymagania
Time-independentDetekcja anomalii względem rozkładu danych/historii bez osi czasuBrak minimalnych runów
Time-dependentDetekcja oparta na analizie szeregów czasowych i sezonowości≥6 uruchomień profilu
Reguły logiczne (fallback)Ustalona granica lub wartość uznawana za błądKonfiguracja ręczna

Porównanie modeli

CechyTime-independentTime-dependent
Tryb standardowy❌ (na żądanie)
Czułość na trendy sezonowe
Szybkość wykrycia⚠️ zależna od historii
Wymagana historiabrak≥6 cykli

💡 Przykład zastosowania

# Pseudokod opisujący uruchomienie wykrywania anomalii na polu ilości sztuk w sprzedaży
 
run_anomaly_detection(
    dataset="sales.daily_orders",
    metric="quantity",
    model="time_series",
    on_event="profiling_complete",
    alert_threshold="auto"
)

Przy każdej analizie jakości danych (profilowaniu lub monitoringu) wykrywane są nagłe skoki ilości, zerowe wartości, odstępstwa od trendu tygodniowego itp.

📌 Źródła

👽 Brudnopis

  • Celem: automatyczne wykrycie „nieprawidłowości”, bez pisania reguł (ale można komplementarnie)
  • Bardzo często stosowane przy row_count, null_rate, expected_value, max/min drift
  • „Time-aware” model = true observability, sezonowość, outliers w trendzie
  • Alerty downstream: e-mail, Slack, webhook → integracja z Data Steward Workflow
  • Idealne do automatycznej klasyfikacji testów krytycznych vs. informacyjnych
  • Część większego systemu observability jakości danych (Data Quality + Trends + Alerts)