Isolation Forest Algorithm Outlier Detection Pythonissa

Outlier-tunnistus on tärkeä tehtävä koneoppimisen alalla. Sitä käytetään tunnistamaan epätavalliset havainnot tai tietopisteet, jotka poikkeavat tietojoukon yleisestä trendistä. Eräs tehokas algoritmi poikkeamien havaitsemiseen on Isolation Forest -algoritmi. 

Tämän päivän blogissa käsittelemme Isolation Forest -algoritmin perusteita ja näytämme, kuinka sen avulla voidaan havaita poikkeamat tietojoukossa käyttämällä . Voit katsoa tämän opetusohjelman koko videon tämän blogin alaosasta .

Sisällysluettelo

Metsän eristysalgoritmi vs. laatikkokuvausmenetelmä 

Alla on kaksi visuaalista kuvaa poikkeamien havaitsemiseksi. Huomaa merkittävät erot visuaalisessa esityksessä käytettäessä -merkkiä verrattuna eristysmetsän ML-malliin outlier-tunnistukseen. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Isolation Forest ML -mallissa IS Anomaly Detection -algoritmin havaitsemien poikkeavien prosenttiosuus on 32,56 %. Samaa algoritmia käytettäessä loput 67,44 % tiedoista osuu normaalille alueelle, joka on melko herkkä. Tavoitteenamme on hienosäätää tätä herkkyyttä käyttämällä . 

Isolation Forest Algorithm Outlier Detection Pythonissa

Perinteinen outlier-tunnistusmenetelmä

Perinteinen tapa löytää outlier on käyttää box plot - menetelmää . Tässä menetelmässä käytämme IQR:ää löytääksemme, mikä jää datan odotetun alueen ulkopuolelle. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Tässä esimerkissä tämä yksittäinen piste viiksen yläpuolella on poikkeava pisteemme.

Isolation Forest Algorithm Outlier Detection Pythonissa

Jos muunnamme tämän visuaalisen kaavion ympyräkaavioksi, saamme tämän yksittäisen poikkeaman, joka vastaa 2,33 % kokonaistiedoista. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Tässä blogissa opimme käyttämään Isolation Forest ML -menetelmää, hienosäätämään sitä vastaamaan perinteistä menetelmää ja lisäämään tai vähentämään sen herkkyyttä.

Tietojoukko eristysmetsäalgoritmia varten

Avaa tietojoukkomme LuckyTemplatesissa. Napsauta sitten Muunna tiedot. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Tämän opetusohjelman tietojoukkomme tulee näkyviin. Se sisältää päivämäärän , käyttäjien lukumäärän , indeksin ja eristysmetsän poikkeavuuden , jonka tulos on 1 normaalille alueelle ja -1 poikkeaville arvoille  .

Meillä on myös sarake Traditional Outlierille ja ehdollinen sarake nimeltä IS Anomalia Detection , joka kuvastaa eristysmetsän poikkeavaa arvoa. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Toinen kyselymme näyttää tietokehyksemme, josta opimme yhdistämään kaiken. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Python-koodit

Ominaisuudet - ruudussa näemme kaksi käynnissä olevaa komentosarjaamme. Luomme Isolation Forest -tulosteen yhdellä näistä skripteistä ja luomme perinteisen poikkeaman toisella. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Isolation Forest Algorithm Python Code

Napsauta Suorita Python-skripti nähdäksesi koodin. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Tässä Python-koodissa tuomme pd:nä ja käytä jotain nimeltä Isolation Forest. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Eristysmetsä on puupohjainen malli, joka tekee päätökset puurakenteen perusteella ja päättää sitten onko se poikkeava vai ei . Kutsumme sitä ensemble-malliksi , koska se käyttää kahta eri menetelmää tietyn poikkeaman löytämiseksi. 

Korvaamme myös tietojoukkomuuttujan , joka pitää tietojoukkomme oletuksena, nimellä df

Isolation Forest Algorithm Outlier Detection Pythonissa

Tietojoukkomme vuoksi emme tarvitse kahta alla korostettua koodiriviä, joten voimme vain poistaa kyseiset rivit. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Se, mitä teemme, on mallinnus.

Tallenna malli IsolationForest- nimellä ja anna mallin oppia tiedot käyttäjien kanssa. Luo sitten uusi sarake nimeltä Anomalia Detection , joka palaa kaikkiin oppimiinsa tietoihin ja ennustaa, minkä pitäisi olla poikkeava vai ei. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Tämän toiminnon oletusarvoksi kontaminaatiolle on asetettu 0,5 . Siksi se on tällä hetkellä erittäin herkkä ja etsii paljon poikkeavuuksia. Tästä syystä aikaisemmassa ympyräkaaviossamme meillä on erittäin korkea vaihteluväli, 32,56 %. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Jotta se olisi vähemmän herkkä, voimme lisätä kontaminaatio = .1 IsolationForest - funktioon .

Isolation Forest Algorithm Outlier Detection Pythonissa

Lopuksi nollaa indeksi ja napsauta OK.

Tuloksena näkyy yhteenvetotaulukko. Siirry Applied Steps -ruutuun ja napsauta df.

Isolation Forest Algorithm Outlier Detection Pythonissa

Lähdöstä löydämme poikkeamat Anomalia Detection -sarakkeen alta. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Haluamme myös nähdä, kuinka se toimii perinteisen poikkeaman rinnalla. 

Perinteinen outlier Python-koodi

Suoritamme toisen Python-skriptin, joka tässä esimerkissä on Suorita Python-skripti1.

Isolation Forest Algorithm Outlier Detection Pythonissa

Tämä koodi lisää outlier-funktion käyttämällä ensimmäistä ja kolmatta kvartiilia. Kun vähennämme q1:stä q3 , saamme kvartiilialueen (IQR)

Isolation Forest Algorithm Outlier Detection Pythonissa

Seuraavat kaksi riviä asettavat ehdot poikkeaville arvoille. Ensimmäinen rivi sanoo, että mitä tahansa alle 1,5 * iqr:tä pidetään negatiivisena tai alhaisempana poikkeavuutena. Näin löydämme myös poikkeamat perinteisellä tavalla.

Tiedämme myös, että meillä on yksi poikkeama tiedoissamme korkein kohta. Tämän vuoksi toisella rivillä todetaan, että arvopisteitä, jotka ovat suurempia kuin q3 + 1,5 * iqr, pidetään myös poikkeavina arvoina. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Palauta tietojoukko ja käytä funktiota outliers(df, 'Users') . Napsauta sitten OK.

Isolation Forest Algorithm Outlier Detection Pythonissa

Näkyviin tulee aikaisemman kaltainen yhteenvetotaulukko. 

Jos siirrymme Applied Steps -ruutuun ja napsautamme Muutettu tyyppi1 , saamme Traditional Outlier- ja Anomalia Detection -sarakkeet vierekkäin, jolloin jälkimmäinen käyttää 1 ja -1 merkitsemään poikkeavia ja ei.

Isolation Forest Algorithm Outlier Detection Pythonissa

Kuitenkin, kun käytämme päivämääriä Pythonin kanssa, ne voivat näyttää sekaisilta. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Voimme luoda lisäsarakkeen käyttämällä Lisää sarake -kohdan hakemistoa .

Isolation Forest Algorithm Outlier Detection Pythonissa

Lisää sitten hakemisto edelliseen sarakkeeseen Yhdistä -toiminnolla, jotta voimme säilyttää kaikki tiedot alkuperäisessä sarakkeessa/tietojoukossa. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Kun meillä on kaikki yhdessä, voimme ajaa koodimme ja päivittää visuaaliamme. Muista, että muutimme poikkeaman kontaminaatiota 0,5:stä 0,1:een, joten meidän pitäisi nähdä tämän kaavion osan pienenevän melkoisesti. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Palaa visualisointiin ja napsauta Käytä muutoksia. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Huomaa, kuinka poikkeamien havaitseminen meni 32,56 prosentista 11,63 prosenttiin tiedoistamme. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Kuten tuloksistamme näemme, tämä on hyvä tapa optimoida poikkeamien havaitseminen. 

Muista myös, että kun ihmiset käyttävät perinteistä menetelmää, he voivat käyttää arvoja, jotka ovat pienempiä kuin 1,5, mutta 1,5 x IQR on kuitenkin perinteinen tapa. 

Isolation Forest Algorithm Outlier Detection Pythonissa

Isolation Forest Algorithm Outlier Detection Pythonissa




Johtopäätös

Käyttämällä Isolation Forest -algoritmia voimme helposti tunnistaa ja sulkea pois epätavalliset havainnot tietojoukostamme, mikä parantaa analyysimme tarkkuutta. Tämä opetusohjelma on tarjonnut vaiheittaisen oppaan Isolation Forest -algoritmin käyttämisestä poikkeavien havaitsemiseen Pythonilla, mikä auttaa sinua pääsemään alkuun sen toteuttamisessa omissa projekteissasi.

Teimme erittäin helpon koodin poikkeavuuksien löytämiseksi. Voit edelleen optimoida tätä algoritmia muokkaamalla kontaminaatiota ja monia muita muuttujia, jotka voit oppia koodisivun kautta. 

Kaikki parhaat,


Päivämäärätaulukon luominen LuckyTemplatesissa

Päivämäärätaulukon luominen LuckyTemplatesissa

Ota selvää, miksi LuckyTemplatesissa on tärkeää pitää oma päivämäärätaulukko ja opi nopein ja tehokkain tapa tehdä se.

LuckyTemplates mobiiliraportointivinkkejä ja -tekniikoita

LuckyTemplates mobiiliraportointivinkkejä ja -tekniikoita

Tämä lyhyt opetusohjelma korostaa LuckyTemplates-mobiiliraportointiominaisuutta. Näytän sinulle, kuinka voit kehittää raportteja tehokkaasti mobiililaitteille.

Ammattimainen palveluanalyysiraportit LuckyTemplatesissa

Ammattimainen palveluanalyysiraportit LuckyTemplatesissa

Tässä LuckyTemplates Showcase -esittelyssä käymme läpi raportteja, jotka näyttävät ammattitaitoisen palveluanalytiikan yritykseltä, jolla on useita sopimuksia ja asiakkaiden sitoumuksia.

Microsoft Power Platform -päivitykset | Microsoft Ignite 2021

Microsoft Power Platform -päivitykset | Microsoft Ignite 2021

Käy läpi tärkeimmät Power Appsin ja Power Automaten päivitykset sekä niiden edut ja vaikutukset Microsoft Power Platformiin.

Yleiset SQL-funktiot: Yleiskatsaus

Yleiset SQL-funktiot: Yleiskatsaus

Tutustu joihinkin yleisiin SQL-toimintoihin, joita voimme käyttää, kuten merkkijono, päivämäärä ja joitain lisätoimintoja tietojen käsittelyyn tai käsittelyyn.

LuckyTemplates-mallin luominen: opas ja vinkkejä

LuckyTemplates-mallin luominen: opas ja vinkkejä

Tässä opetusohjelmassa opit luomaan täydellisen LuckyTemplates-mallin, joka on määritetty tarpeidesi ja mieltymystesi mukaan.

Kenttäparametrit ja pienet kertoimet LuckyTemplatesissa

Kenttäparametrit ja pienet kertoimet LuckyTemplatesissa

Tässä blogissa esittelemme, kuinka kerrostat kenttäparametreja pienillä kerroilla uskomattoman hyödyllisten näkemysten ja visuaalien luomiseksi.

LuckyTemplates-sijoitus ja mukautettu ryhmittely

LuckyTemplates-sijoitus ja mukautettu ryhmittely

Tässä blogissa opit käyttämään LuckyTemplates-sijoitus- ja mukautettuja ryhmittelyominaisuuksia näytetietojen segmentoimiseen ja luokitteluun kriteerien mukaan.

LuckyTemplatesissa näytetään vain tiettyyn päivämäärään asti kumulatiivinen kokonaissumma

LuckyTemplatesissa näytetään vain tiettyyn päivämäärään asti kumulatiivinen kokonaissumma

Tässä opetusohjelmassa käsittelen tiettyä tekniikkaa, jolla voit näyttää kumulatiivisen kokonaissumman LuckyTemplates-visuaaleissasi vain tiettyyn päivämäärään asti.

Bullet Charts: Kehittyneet mukautetut visuaalit LuckyTemplatesille

Bullet Charts: Kehittyneet mukautetut visuaalit LuckyTemplatesille

Opi luomaan ja mukauttamaan Bullet-kaavioita LuckyTemplatesissa, joita käytetään pääasiassa suorituskyvyn mittaamiseen suhteessa tavoitteeseen tai edellisiin vuosiin.