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,


Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Tudja meg, miért fontos egy dedikált dátumtáblázat a LuckyTemplatesben, és ismerje meg ennek leggyorsabb és leghatékonyabb módját.

LuckyTemplates mobil jelentéskészítési tippek és technikák

LuckyTemplates mobil jelentéskészítési tippek és technikák

Ez a rövid oktatóanyag kiemeli a LuckyTemplates mobil jelentési funkcióját. Megmutatom, hogyan készíthet hatékony jelentéseket mobileszközökön.

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Ebben a LuckyTemplates bemutatóban olyan jelentéseket tekintünk át, amelyek professzionális szolgáltatáselemzést mutatnak be egy olyan cégtől, amely több szerződéssel és ügyfél-elkötelezettséggel rendelkezik.

Microsoft Power Platform frissítések | Microsoft Ignite 2021

Microsoft Power Platform frissítések | Microsoft Ignite 2021

Tekintse át a Power Apps és a Power Automate legfontosabb frissítéseit, valamint azok előnyeit és következményeit a Microsoft Power Platform számára.

Gyakori SQL-függvények: Áttekintés

Gyakori SQL-függvények: Áttekintés

Fedezzen fel néhány gyakori SQL-függvényt, amelyeket használhatunk, például a karakterláncot, a dátumot és néhány speciális függvényt az adatok feldolgozásához vagy manipulálásához.

LuckyTemplates sablonok létrehozása: útmutató és tippek

LuckyTemplates sablonok létrehozása: útmutató és tippek

Ebből az oktatóanyagból megtudhatja, hogyan hozhatja létre a tökéletes LuckyTemplates sablont, amely az Ön igényeinek és preferenciáinak megfelelően van konfigurálva.

Mezőparaméterek és kis többszörösek a LuckyTemplatesben

Mezőparaméterek és kis többszörösek a LuckyTemplatesben

Ebben a blogban bemutatjuk, hogyan lehet a mezőparamétereket kis többszörösekkel rétegezni, hogy hihetetlenül hasznos betekintést és látványelemeket hozzon létre.

LuckyTemplates rangsor és egyéni csoportosítás

LuckyTemplates rangsor és egyéni csoportosítás

Ebből a blogból megtudhatja, hogyan használhatja a LuckyTemplates rangsorolási és egyéni csoportosítási funkcióit a mintaadatok szegmentálására és kritériumok szerinti rangsorolására.

A LuckyTemplatesben csak egy meghatározott dátumig összesített összeg látható

A LuckyTemplatesben csak egy meghatározott dátumig összesített összeg látható

Ebben az oktatóanyagban egy konkrét technikát fogok bemutatni, hogyan jelenítheti meg a kumulatív összeget csak egy adott dátumig a LuckyTemplates vizualizációjában.

Bullet Charts: speciális egyéni látványelemek a LuckyTemplates számára

Bullet Charts: speciális egyéni látványelemek a LuckyTemplates számára

Ismerje meg, hogyan hozhat létre és testreszabhat Bullet diagramokat a LuckyTemplates alkalmazásban, amelyeket főként a teljesítmény mérésére használnak a célhoz vagy az előző évekhez képest.