Zephyrnet-logo

Een end-to-end gids over anomaliedetectie

Datum:

Dit artikel is gepubliceerd als onderdeel van het Data Science-blogathon.

Introductie

Anomalie is iets dat niet normaal is. Elk datapunt dat op een afstand van alle normale datapunten wordt geplaatst, is een anomalie. Daarom worden afwijkingen ook wel uitbijters genoemd.

Anomaliedetectie wordt ook wel afwijkingsdetectie genoemd omdat afwijkende objecten attribuutwaarden hebben die verschillen van alle normale gegevensobjecten.

Iedereen houdt van een mysterie en dat is wat anomaliedetectie is: het ongewone opsporen, de fraude opsporen, de vreemde activiteit ontdekken.

Wat is afwijkingsdetectie?

De woordenboekdefinitie van een a

Onregelmatigheidsdetectie

Soorten afwijkingen

  • Puntafwijkingen – Een enkel exemplaar van gegevens is abnormaal als het te ver verwijderd is van de rest. Use case - MasterCard-fraude detecteren op basis van het bestede bedrag.
Soorten afwijkingen
  • Contextuele anomalieën – De afwijking is gebaseerd op de specifieke context. We kunnen dit soort anomalie vinden in op tijdreeksen gebaseerde gegevens. Use case – Het bedrag dat dagelijks aan benzine wordt uitgegeven gedurende de werkdagen is normaal, maar zal vreemd zijn wanneer het op vakantie wordt uitgegeven.
Contextuele anomalieën
  • Collectieve anomalieën – Een set data-instances bij elkaar helpt bij het opsporen van anomalieën. Use case - Iemand die probeert om gegevens van een externe machine naar een lokale host te kopiëren, zou onverwachts zo'n anomalie worden gemarkeerd als mogelijke cyberaanval.

Oorzaken van afwijkingen

1. Gegevens uit verschillende klassen

Een object kan anders zijn omdat het van een andere klasse is. Gevallen zoals creditcarddiefstal, inbraakdetectie, uitkomst van ziekte, afwijkende testresultaten zijn goede voorbeelden van anomalieën die optreden en worden geïdentificeerd met behulp van klasselabels.

2. Natuurlijke variatie

Bij een normale of Gauss-verdeling neemt de kans op een data-object snel af. Dergelijke objecten worden als anomalieën beschouwd. Dit worden ook wel uitbijters genoemd.

3. Gegevensmeting en verzamelfouten

Dit soort fouten treden op wanneer we foutieve gegevens verzamelen of als er een afwijking is bij het meten van gegevens.

Waar wordt anomaliedetectie gebruikt?

  • Gegevensdoorbraken
  • Identiteitsdiefstal
  • Productie
  • Netwerken
  • Geneeskunde
  • Camera bewaking

Waar is anomaliedetectie goed voor?

  • Om ongebruikelijke waarden van metrieken te vinden om onopgemerkte problemen te vinden.
  • Om veranderingen te vinden in een belangrijke metriek of proces, zodat mensen het kunnen onderzoeken.
  • Om het oppervlak of de zoekruimte te verkleinen door een probleem te diagnosticeren dat is gedetecteerd.
  • Om de noodzaak om drempels te kalibreren of opnieuw te kalibreren te verminderen.
  • Om de menselijke intuïtie en oordeel te vergroten.

Nadelen

  • Kan geen analyse van de oorzaak geven, hoewel het daarbij kan helpen.
  • Kan geen ja of nee antwoorden geven als er een anomalie is.
  • Inefficiënt om te bewijzen dat er een anomalie in het systeem is, alleen dat er iets ongewoons is aan de metriek die wordt waargenomen.
  • Niet in staat om werkelijke systeemfouten of storingen te detecteren omdat een fout niet lijkt op een anomalie.
  • Het kan het menselijk oordeel en de ervaring niet vervangen.
  • Niet in staat om de betekenis van statistieken te begrijpen.

Benaderingen voor anomaliedetectie

  • Modelgebaseerd

In een dergelijke benadering wordt een model van de gegevens gebouwd. De objecten die niet goed passen, worden als anomalieën beschouwd. Laten we bijvoorbeeld aannemen dat er een model wordt gebouwd van bepaalde gegevens in de vorm van een cluster. Dan zijn anomalieën die gegevensobjecten die niet sterk tot het gebouwde cluster behoren. In een regressiemodel zijn de anomalieën verre van voorspelde waarde. Het probleem met een dergelijke benadering is echter wanneer er geen trainingsgegevens aanwezig zijn om een ​​model te bouwen of wanneer er geen statistische distributie van gegevens is. Daarom hebben we in dergelijke gevallen technieken nodig waarvoor geen datamodel hoeft te worden gebouwd.

  • Op afstand gebaseerd

Deze benadering is gebaseerd op de nabijheid. Overweeg een 2D- of 3D-spreidingsdiagram: alle gegevensobjecten bevinden zich in één nabijheid. Maar abnormale objecten zijn weg van hen.

  • Op dichtheid gebaseerd

De dichtheid van objecten is eenvoudig te berekenen, vooral als er een afstandsmaat tussen objecten beschikbaar is. Objecten met een lage dichtheid zijn objecten die relatief ver van buren verwijderd zijn. Zulke objecten noemen we anomalieën.

Er zijn drie basiscategorieën voor anomaliedetectie:

1. Gesuperviseerde anomaliedetectie: bij deze begeleide training moet er een trainingsset zijn voor zowel gegevensobjecten als verwachte afwijkende objecten. We moeten opmerken dat er meer dan één afwijkende klasse kan zijn.

2. Ongecontroleerde anomaliedetectie: voor situaties waar klasselabels niet beschikbaar zijn. We kunnen voor elk object een score geven die aangeeft in welke mate de instantie abnormaal is. We kunnen ook waarnemen dat als er veel anomalieën aanwezig zijn die op elkaar lijken, we ze kunnen groeperen als normale groep of dat de uitbijtersscore laag is. We kunnen dus zeggen dat voor een succesvolle detectie van anomalie zonder toezicht het noodzakelijk is dat anomalieën duidelijk zijn.

3. Semi-gesuperviseerde anomaliedetectie: soms, wanneer er trainingsgegevens zijn met gelabelde normale objecten en score, maar geen abnormale objecten hebben, kunnen we de semi-bewaakte anomaliedetectie implementeren om de anomalieën te vinden. We gebruiken de normale objecten om de anomalieën te vinden. Maar de moeilijkheid is dat het soms niet gemakkelijk is om die representatieve set van normale objecten te vinden waarmee we afwijkingen moeten ontdekken.

Wat meer details van de anomaliedetectiebenaderingen

De modelgebaseerde benadering (ook wel statistische methode genoemd)

Trends en seizoensgebondenheid zijn twee kenmerken van tijdreeksstatistieken die veel modellen verstoren. In feite zijn ze een van de twee belangrijkste redenen waarom statische drempels breken. Trends zijn een continue toename of afname van een metrische waarde. Terwijl seizoensgebondenheid de periodieke patronen weerspiegelt die zich in een systeem voordoen, meestal boven een basislijn stijgen en vervolgens weer afnemen. Veelvoorkomende seizoensperioden zijn elk uur, dagelijks en wekelijks, maar uw systemen kunnen een seizoensperiode hebben die langer is of zelfs een combinatie van verschillende perioden.

Modelgebaseerde aanpak (Afbeelding 1)
Modelgebaseerde aanpak (Afbeelding 2)

De op afstand gebaseerde benadering

Op afstand gebaseerde benadering classificeert een gegevenspunt als een anomalie (uitbijter) als de plaats zich in een schaarser gebied bevindt

De op dichtheid gebaseerde benadering

Op dichtheid gebaseerd de dichtheid van de regio. Op dichtheid gebaseerde clustering gebruikt de gelokaliseerde dichtheid van punten om de clusters te bepalen, in plaats van alleen de afstand tussen punten te gebruiken.

DBSCAN

DBSCAN (Density-based Spatial Clustering of Applications with Noise) is een van de veelgebruikte op dichtheid gebaseerde clusteringalgoritmen die wordt gebruikt in de toepassingen van uitbijterdetectie. Het basisidee achter DBSCAN is dat een cluster minimaal numbepsilon ("eps") moet bevatten om clustering uit te voeren.

We zullen een voorbeeld nemen om uitbijter te detecteren met behulp van de Z-score en het interkwartielbereik

Eerst door Z-score te gebruiken

Formule voor Z-score is (Observatie – Gemiddelde)/ Standaarddeviatie

z = (X — μ) / σ gegevensset= [11,10,12,14,12,15,14,13,15,102,12,14,17,19,107, 10,13,12,14,12,108,12,11,14,13,15,10,15,12,10,14,13,15,10, 3] outliers=[] def detect_outliers(data) hold=XNUMX mean = np.mean(data) std =np.std( data) voor i in data: z_score= (i - gemiddelde)/std als np.abs(z_score) > drempel: outliers.append(y) return outliers outlier_pt=detect_outliers(dataset) outlier_pt

[102, 107, 108]

Nu door gebruik te maken van interkwartielbereik dat 75% - 25% waarden is in een bepaalde dataset

gesorteerd(gegevensset)

[10, 10, 10, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 15 , 15, 15, 15, 15, 17, 19, 102, 107, 108]

kwartiel1, kwartiel3= np.percentiel(dataset,[25,75])

print(kwartiel1,kwartiel3)

12.0 15.0

## Vind de IQR

iqr_value=kwartiel3-kwartiel1

print(iqr_waarde)

3.0

## Zoek de ondergrenswaarde en de bovengrenswaarde

lower_bound_val = kwartiel1 -(1.5 * iqr)

upper_bound_val = kwartiel3 +(1.5 * iqr)

print(ondergrens_val, bovengrens_val)

17.5, 19.5

n

Anomaliedetectie is een zeer uitgebreid concept; in deze gids leerden we enkele basisconcepten van anomaliedetectie

  • We hebben geleerd wat anomalieën zijn, hun oorzaken en typen.
  • We bespraken ook benaderingen om anomalieën te detecteren en hoe ze in de echte wereld worden gebruikt.
  • We hebben ook gezien hoe ze kunnen worden gebruikt om betere modellen te maken.
  • Afwijkingen zijn uiterst belangrijk om te worden opgespoord voordat een echt goed model wordt gebouwd.
  • ze nee
  • Het helpt ons om onszelf te waarschuwen voor elke ongewenste gebeurtenis die ruim van tevoren moet worden gedetecteerd om ons voor te bereiden op situaties.

Ik hoop dat deze gids over anomaliedetectie u helpt een goed begrip te krijgen van hoe anomaliedetectie werkt.

De in dit artikel getoonde media zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt.

spot_img

Laatste intelligentie

spot_img