Isolation Forest Algorithm Outlier Detection in Python

A kiugró értékek észlelése fontos feladat a gépi tanulás területén. A szokatlan megfigyelések vagy adatpontok azonosítására szolgál, amelyek eltérnek az adatkészlet általános trendjétől. A kiugró értékek észlelésének egyik hatékony algoritmusa az Isolation Forest algoritmus. 

A mai blogunkban az Isolation Forest algoritmus alapjait ismertetjük, és bemutatjuk, hogyan használhatók fel a kiugró értékek észlelésére egy adatkészletben a segítségével. Az oktatóanyag teljes videóját a blog alján tekintheti meg .

Tartalomjegyzék

Izolációs erdő algoritmus vs Box Plot Method 

Az alábbiakban két kép látható a kiugró értékek észleléséhez. Figyelje meg a jelentős különbségeket a vizuális ábrázolásban, ha használja, összehasonlítva az Isolation Forest ML Modell Outlier Detection használatával. 

Isolation Forest Algorithm Outlier Detection in Python

Az Isolation Forest ML modellben az IS Anomália Detection algoritmus által észlelt kiugró értékek százaléka 32,56%. Ugyanezt az algoritmust használva az adatok fennmaradó 67,44% -a a normál tartományba esik, ami meglehetősen érzékeny. Célunk az érzékenység finomhangolása a segítségével. 

Isolation Forest Algorithm Outlier Detection in Python

A hagyományos outlier-észlelési módszer

A kiugró érték megtalálásának hagyományos módja a box plot módszer . Ennél a módszernél az IQR segítségével keressük meg, mi esik az adatok várt tartományán kívülre. 

Isolation Forest Algorithm Outlier Detection in Python

Ebben a példában ez az egyetlen pont a bajusz felett a mi kiugró pontunk.

Isolation Forest Algorithm Outlier Detection in Python

Ha ezt a vizuális grafikont kördiagrammá fordítjuk, akkor ezt az egy bizonyos kiugró értéket kapjuk, amely az összes adat  2,33% -ának felel meg.

Isolation Forest Algorithm Outlier Detection in Python

Ebben a blogban megtanuljuk az Isolation Forest ML Method használatát, finomhangolását a hagyományos módszerhez, valamint az érzékenység növelését vagy csökkentését.

Az Isolation Forest Algorithm adatkészlete

Nyissa meg adatkészletünket a LuckyTemplates alkalmazásban. Ezután kattintson az Adatok átalakítása elemre. 

Isolation Forest Algorithm Outlier Detection in Python

Megjelenik az oktatóanyaghoz tartozó adatkészletünk. Tartalmazza a dátumot , a felhasználók számát , az indexet és az izolációs erdő kiugró értéket 1-es kimenettel a normál tartományhoz és -1-et a kiugró értékekhez  .

Van egy Hagyományos Outlier oszlopunk és egy feltételes oszlop is, melynek címe IS Anomália-észlelés, amely tükrözi az Isolation Forest Outlier-t. 

Isolation Forest Algorithm Outlier Detection in Python

Második lekérdezésünk az adatkeretünket mutatja, amelyből megtanuljuk, hogyan kell mindent összerakni. 

Isolation Forest Algorithm Outlier Detection in Python

A Python kódok

A Tulajdonságok panelen láthatjuk a két futó szkriptünket. Az egyik ilyen szkripttel létrehozzuk az Isolation Forest kimenetet, a másikkal pedig a hagyományos kiugró értéket. 

Isolation Forest Algorithm Outlier Detection in Python

Isolation Forest Algorithm Python Code

Kattintson a Python-szkript futtatása elemre a kód megtekintéséhez. 

Isolation Forest Algorithm Outlier Detection in Python

Ebben a Python-kódban importálunk pd-ként , és használja az Isolation Forest nevet . 

Isolation Forest Algorithm Outlier Detection in Python

Az Isolation Forest egy fa alapú modell, amely egy fastruktúra alapján hoz döntéseket, majd eldönti, hogy az kiugró érték-e vagy sem. Ezt együttes modellnek nevezzük, mert két különböző módszert használ egy adott kiugró érték megtalálására. 

Az adatkészletünket alapértelmezésben tároló adatkészlet- változót is lecseréljük df -re . 

Isolation Forest Algorithm Outlier Detection in Python

Adatkészletünkből adódóan nem lesz szükségünk az alább kiemelt két sor kódra, így csak törölni tudjuk ezeket a sorokat. 

Isolation Forest Algorithm Outlier Detection in Python

Amit csinálunk, az a modell példányosítása.

Mentse a modellt IsolationForest néven , és hagyja, hogy a modell megtanulja az adatokat a felhasználókkal. Ezután hozzon létre egy új oszlopot Anomália-észlelés néven , amely visszamegy az összes tanult adaton, és megjósolja, hogy melyik lehet kiugró érték vagy sem. 

Isolation Forest Algorithm Outlier Detection in Python

Ennél a funkciónál a szennyeződés alapértelmezett értéke 0,5 . Így jelenleg rendkívül érzékeny, és sok kiugró értéket fog keresni. Emiatt a korábbi kördiagramunkban nagyon magas, 32,56%-os kiugró tartományunk van. 

Isolation Forest Algorithm Outlier Detection in Python

Annak érdekében, hogy kevésbé érzékeny legyen, az IsolationForest függvényben a kontamináció = .1 értéket adjuk hozzá .

Isolation Forest Algorithm Outlier Detection in Python

Végül állítsa vissza az indexet, és kattintson az OK gombra.

Az eredmény egy összefoglaló táblázatot fog mutatni. Lépjen az Alkalmazott lépések panelre, és kattintson a df elemre.

Isolation Forest Algorithm Outlier Detection in Python

A kimenetben az Anomália-észlelés oszlopban találjuk a kiugró értékeket . 

Isolation Forest Algorithm Outlier Detection in Python

Azt is szeretnénk látni, hogyan teljesít a hagyományos outlier mellett. 

Hagyományos Outlier Python kód

Egy másik Python-szkriptet fogunk futtatni, amely ebben a példában a Run Python script1.

Isolation Forest Algorithm Outlier Detection in Python

Ez a kód egy kiugró függvényt ad hozzá az első és a harmadik kvartilis használatával. Ha kivonjuk q1-et q3-ból , megkapjuk az Interkvartilis tartományt (IQR)

Isolation Forest Algorithm Outlier Detection in Python

A következő két sor a kiugró értékek feltételeit határozza meg. Az első sor azt mondja, hogy az 1,5 * iqr- nél kisebb érték negatív vagy alacsonyabb kiugró értéknek minősül . A hagyományos módon kiugró értékeket is így találunk.

Azt is tudjuk, hogy adataink legmagasabb pontja egy kiugró érték. Ennek figyelembevétele érdekében a második sor kimondja, hogy a q3 + 1,5 * iqr- nél magasabb adatpontok szintén kiugró értékeknek számítanak. 

Isolation Forest Algorithm Outlier Detection in Python

Adja vissza az adatkészletet, és használja az outliers(df, 'Felhasználók') függvényt . Ezután kattintson az OK gombra.

Isolation Forest Algorithm Outlier Detection in Python

Megjelenik az előzőhöz hasonló összefoglaló táblázat. 

Ha az Alkalmazott lépések ablaktáblára lépünk , és rákattintunk a Módosított típus1 elemre, akkor egymás mellett kapjuk meg a Hagyományos Outlier és Az Anomália-észlelés oszlopokat, az utóbbi pedig 1-et és -1-et használ a kiugró értékek jelölésére, és nem.

Isolation Forest Algorithm Outlier Detection in Python

Ha azonban dátumokat használunk a Python-nal, akkor előfordulhat, hogy összezavarodnak. 

Isolation Forest Algorithm Outlier Detection in Python

Amit tehetünk, az az, hogy létrehozunk egy további oszlopot az Oszlop hozzáadása Index segítségével .

Isolation Forest Algorithm Outlier Detection in Python

Ezután adja hozzá az Indexet az előző oszlophoz a Merge paranccsal , hogy megőrizhessük az eredeti oszlopban/adatkészletben lévő összes információt. 

Isolation Forest Algorithm Outlier Detection in Python

Miután mindent összeállítottunk, futtathatjuk a kódunkat és frissíthetjük a vizualitásunkat. Ne feledje, hogy a kiugró szennyeződést 0,5-ről 0,1-re változtattuk, így a grafikon ezen részének egy kicsit csökkennie kell. 

Isolation Forest Algorithm Outlier Detection in Python

Menjen vissza a látványelemekhez, és kattintson a Módosítások alkalmazása gombra. 

Isolation Forest Algorithm Outlier Detection in Python

Figyelje meg, hogyan ment az anomália-észlelés az adataink 32,56%-áról egészen 11,63%-ig. 

Isolation Forest Algorithm Outlier Detection in Python

Amint az eredményeinkből látható, ez egy jó módja annak, hogy optimalizáljuk a kiugró értékek észlelését. 

Ne feledje azt is, hogy amikor az emberek a hagyományos módszert használják, akkor 1,5-nél alacsonyabb értékeket használhatnak, de ennek ellenére az 1,5 x IQR a hagyományos módszer. 

Isolation Forest Algorithm Outlier Detection in Python

Isolation Forest Algorithm Outlier Detection in Python




Következtetés

Az Isolation Forest algoritmus használatával könnyen azonosíthatjuk és kizárhatjuk adatkészletünkből a szokatlan megfigyeléseket, így javítva elemzésünk pontosságát. Ez az oktatóanyag lépésenkénti útmutatót ad az Isolation Forest algoritmus használatához a kiugró értékek Python használatával történő észleléséhez, amely segít a saját projektekben való implementálásában.

Amit tettünk, egy nagyon egyszerű kód az anomáliák megtalálására. Tovább optimalizálhatja ezt az algoritmust a szennyeződés és számos más változó módosításával, amelyeket a kódlapon keresztül tanulhat meg. 

Minden jót,


A DAX Studio és a Tabular Editor telepítése a LuckyTemplates alkalmazásban

A DAX Studio és a Tabular Editor telepítése a LuckyTemplates alkalmazásban

Ismerje meg, hogyan töltheti le és telepítheti a DAX Studio és a Tabular Editor 3 alkalmazást, és hogyan konfigurálhatja őket a LuckyTemplates és az Excel programban való használatra.

LuckyTemplates alakzattérkép-vizualizáció a térbeli elemzéshez

LuckyTemplates alakzattérkép-vizualizáció a térbeli elemzéshez

Ez a blog tartalmazza a Shape Map vizualizációt a LuckyTemplates térbeli elemzéséhez. Megmutatom, hogyan használhatja hatékonyan ezt a vizualizációt annak funkcióival és elemeivel.

LuckyTemplates pénzügyi jelentések: az eredmények hozzárendelése a sablonokhoz minden egyes sorban

LuckyTemplates pénzügyi jelentések: az eredmények hozzárendelése a sablonokhoz minden egyes sorban

Ebben az oktatóanyagban egy egyedülálló ötletet mutatok be a pénzügyi jelentésekkel kapcsolatban, amely az eredmények hozzárendelését jelenti a LuckyTemplates-en belüli táblázatsablonok előre meghatározásához.

DAX-mértékek a LuckyTemplates-ben mértékelágazás használatával

DAX-mértékek a LuckyTemplates-ben mértékelágazás használatával

Hozzon létre DAX-mértékeket a LuckyTemplates alkalmazásban meglévő mértékek vagy képletek használatával. Ezt nevezem mértékelágazási technikának.

A legerősebb funkcióhívás a LuckyTemplatesben

A legerősebb funkcióhívás a LuckyTemplatesben

Ebben a blogban fedezze fel a LuckyTemplates adatkészletet, a leghatékonyabb függvényhívást, amely M- és DAX-függvények ezreit juttatja a keze ügyébe.

Adatmodellezési technikák a DAX-mérések megszervezéséhez

Adatmodellezési technikák a DAX-mérések megszervezéséhez

A mai oktatóanyagban megosztok néhány adatmodellezési technikát a DAX-mérések jobb rendszerezéséhez a hatékonyabb munkafolyamat érdekében.

LuckyTemplates pénzügyi irányítópult: Teljes táblázat testreszabási tippek

LuckyTemplates pénzügyi irányítópult: Teljes táblázat testreszabási tippek

A LuckyTemplates egy nagyszerű eszköz a pénzügyi jelentésekhez. Itt található egy oktatóanyag, amely bemutatja, hogyan hozhat létre személyre szabott táblázatokat a LuckyTemplates pénzügyi irányítópultjához.

A Power Query nyelvi folyamatának bevált gyakorlatai

A Power Query nyelvi folyamatának bevált gyakorlatai

Ez az oktatóanyag megvitatja a Power Query nyelvi folyamatot, és azt, hogyan segíthet zökkenőmentes és hatékony adatjelentések létrehozásában.

LuckyTemplates egyéni ikonok | PBI vizualizációs technika

LuckyTemplates egyéni ikonok | PBI vizualizációs technika

Az egyik kedvenc technikámról fogok beszélni a LuckyTemplates egyéni ikonok körül, amely dinamikusan használja az egyéni ikonokat a LuckyTemplates vizualizációkban.

LuckyTemplates táblázatok létrehozása UNION & ROW függvény használatával

LuckyTemplates táblázatok létrehozása UNION & ROW függvény használatával

Ebben a blogban megmutatom, hogyan hozhat létre LuckyTemplates táblázatokat olyan képlet segítségével, amely egyesíti az UNION és a ROW függvényt.