Isolasjonsskogalgoritme for avviksdeteksjon i Python

Outlier-deteksjon er en viktig oppgave innen maskinlæring. Den brukes til å identifisere uvanlige observasjoner eller datapunkter som avviker fra den generelle trenden til datasettet. En effektiv algoritme for avvikdeteksjon er Isolation Forest- algoritmen. 

I dagens blogg vil vi dekke det grunnleggende om Isolation Forest-algoritmen og demonstrere hvordan du bruker den til å oppdage uteliggere i et datasett ved hjelp av . Du kan se hele videoen av denne opplæringen nederst på denne bloggen .

Innholdsfortegnelse

Isolasjonsskogalgoritme vs boksplottmetode 

Nedenfor vises to bilder for avviksdeteksjon. Legg merke til de betydelige forskjellene i den visuelle representasjonen når du bruker sammenlignet med når Isolation Forest ML-modellen for avviksdeteksjon brukes. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

I Isolation Forest ML-modellen er prosentandelen av uteliggere oppdaget av IS Anomaly Detection-algoritmen 32,56 %. Ved å bruke samme algoritme faller de resterende 67,44% av dataene i normalområdet, noe som er ganske sensitivt. Målet vårt er å finjustere denne følsomheten ved å bruke . 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Den tradisjonelle metoden for avviksdeteksjon

Den tradisjonelle måten å finne en uteligger på er å bruke en boksplottmetode . I denne metoden bruker vi IQR for å finne hva som faller utenfor det forventede området for dataene. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

I dette eksemplet er dette enkeltpunktet over værhåren vår ytterside.

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Hvis vi oversetter denne visuelle grafen til et sektordiagram, får vi denne spesielle uteliggeren som tilsvarer 2,33 % av de totale dataene. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

I denne bloggen lærer vi hvordan du bruker Isolation Forest ML-metoden, finjusterer den for å matche den tradisjonelle metoden og øker eller reduserer dens følsomhet.

Datasettet for isolasjonsskogalgoritmen

Åpne datasettet vårt i LuckyTemplates. Klikk deretter Transformer data. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Datasettet vårt for denne opplæringen vil dukke opp. Den inneholder dato , antall brukere , indeks og isolasjonsskogavvik med utgang 1 for normalområdet og -1 for avvikere  .

Vi har også en kolonne for Traditional Outlier , og en betinget kolonne med tittelen IS Anomaly Detection som gjenspeiler Isolation Forest Outlier. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Vår andre spørring viser vår dataramme som vi lærer hvordan vi setter alt sammen. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Python-kodene

Egenskaper- ruten kan vi se de to kjørende skriptene våre. Vi lager Isolation Forest-utgangen med ett av disse skriptene og genererer den tradisjonelle uteliggeren med den andre. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Isolasjonsskogalgoritme Python-kode

Klikk Kjør Python-skript for å se koden. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

I denne Python-koden importerer vi som pd og bruk noe som heter Isolation Forest. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

En isolasjonsskog er en trebasert modell som tar beslutninger basert på en trestruktur og deretter bestemmer om den er en uteligger eller ikke. Vi kaller det en ensemblemodell fordi den bruker to forskjellige metoder for å finne en bestemt uteligger. 

Vi erstatter også datasettvariabelen , som holder datasettet vårt som standard, som df

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Gitt vårt datasett, vil vi ikke trenge de to linjene med koder som er uthevet nedenfor, så vi kan bare slette disse linjene. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Det vi gjør er å instansiere modellen.

Lagre modellen som IsolationForest og la modellen lære dataene med brukere. Deretter oppretter du en ny kolonne kalt Anomaly Detection som vil gå tilbake over alle dataene den lærer og forutsi hvilken som skal være en uteligger eller ikke. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

For denne funksjonen er standard for kontaminering satt til 0,5 . Dermed er den supersensitiv for øyeblikket og vil lete etter mange uteliggere. Det er derfor vi i kakediagrammet vårt tidligere har et veldig høyt spekter av utliggere på 32,56 %. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

For å gjøre det mindre følsomt, kan vi legge til kontaminering = .1 i IsolationForest -funksjonen.

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Til slutt tilbakestill indeksen og klikk OK.

Resultatet vil vise en oppsummeringstabell. Gå til Applied Steps- panelet og klikk på df.

Isolasjonsskogalgoritme for avviksdeteksjon i Python

I utdataene kan vi finne uteliggere under kolonnen Anomaly Detection

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Vi ønsker også å se hvordan den presterer ved siden av den tradisjonelle uteliggeren. 

Tradisjonell Outlier Python-kode

Vi kjører et annet Python-skript som i dette eksemplet er Run Python-skript1.

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Denne koden legger til en uteliggerfunksjon ved å bruke den første og tredje kvartilen. Når vi trekker q1 fra q3 , får vi Interquartile Range (IQR)

Isolasjonsskogalgoritme for avviksdeteksjon i Python

De to neste linjene setter betingelsene for uteliggere. Den første linjen sier at alt mindre enn 1,5 * iqr anses som negative eller lavere uteliggere. Det er også slik vi finner uteliggere på tradisjonell måte.

Vi vet også at vi har én uteligger som høyeste punkt i dataene våre. For å gjøre rede for det, sier den andre linjen at datapunkter som er høyere enn q3 + 1,5 * iqr også anses som uteliggere. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Returner det datasettet og bruk funksjonen outliers(df, 'Brukere') . Klikk deretter OK.

Isolasjonsskogalgoritme for avviksdeteksjon i Python

En oppsummeringstabell som ligner på det vi har tidligere vil dukke opp. 

Hvis vi går til Applied Steps- panelet og klikker Changed Type1 , får vi Tradisjonell Outlier og Anomaly Detection- kolonner side om side, med sistnevnte bruker 1 og -1 for å angi uteliggere og ikke.

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Men når vi bruker datoer med Python, kan de virke rotete ut. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Det vi kan gjøre er å lage en ekstra kolonne ved å bruke indeksen fra Legg til kolonne .

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Legg deretter til Index i forrige kolonne med Merge , slik at vi kan bevare all informasjonen i den originale kolonnen/datasettet. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Når vi har alt sammen, kan vi kjøre koden vår og oppdatere bildene våre. Husk at vi endret forurensningen av uteliggeren fra 0,5 til 0,1, så vi bør se denne delen av grafen krympe ganske mye. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Gå tilbake til det visuelle og klikk på Bruk endringer. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Legg merke til hvordan anomalideteksjonen gikk hele veien fra 32,56 % ned til 11,63 % av dataene våre. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Som vi ser i resultatene våre, er dette en god måte å optimalisere avvikdeteksjonen vår. 

Husk også at når folk bruker den tradisjonelle metoden, kan de bruke verdier lavere enn 1,5, men 1,5 x IQR er den tradisjonelle måten, likevel. 

Isolasjonsskogalgoritme for avviksdeteksjon i Python

Isolasjonsskogalgoritme for avviksdeteksjon i Python




Konklusjon

Ved å bruke Isolation Forest-algoritmen kan vi enkelt identifisere og ekskludere uvanlige observasjoner fra datasettet vårt, og dermed forbedre nøyaktigheten til analysen vår. Denne opplæringen har gitt en trinn-for-trinn-guide for hvordan du bruker Isolation Forest-algoritmen for avvikdeteksjon ved hjelp av Python, som skal hjelpe deg med å komme i gang med å implementere den i dine egne prosjekter.

Det vi gjorde var en veldig enkel kode for å finne anomalier. Du kan optimalisere denne algoritmen ytterligere ved å modifisere forurensning og en rekke andre variabler som du kan lære gjennom kodesett. 

Beste ønsker,


DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.

Opprette en datotabell i LuckyTemplates

Opprette en datotabell i LuckyTemplates

Finn ut hvorfor det er viktig å ha en dedikert datotabell i LuckyTemplates, og lær den raskeste og mest effektive måten å gjøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.

Vanlige SQL-funksjoner: en oversikt

Vanlige SQL-funksjoner: en oversikt

Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.

LuckyTemplates Template Creation: Guide og tips

LuckyTemplates Template Creation: Guide og tips

I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.

LuckyTemplates-rangering og tilpasset gruppering

LuckyTemplates-rangering og tilpasset gruppering

I denne bloggen vil du lære hvordan du bruker LuckyTemplates rangering og tilpassede grupperingsfunksjoner for å segmentere et eksempeldata og rangere det i henhold til kriterier.

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

I denne opplæringen skal jeg dekke en spesifikk teknikk rundt hvordan du viser kumulativ total kun opp til en bestemt dato i grafikken i LuckyTemplates.