Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Detectarea valorii aberante este o sarcină importantă în domeniul învățării automate. Este folosit pentru a identifica observații neobișnuite sau puncte de date care se abat de la tendința generală a setului de date. Un algoritm eficient pentru detectarea valorii aberante este algoritmul Isolation Forest

În blogul de astăzi, vom acoperi elementele de bază ale algoritmului Izolație Forest și vom demonstra cum să-l folosim pentru a detecta valori aberante într-un set de date folosind Python . Puteți viziona videoclipul complet al acestui tutorial în partea de jos a acestui blog .

Cuprins

Algoritmul de izolare a pădurii vs metoda Box Plot 

Mai jos sunt prezentate două elemente vizuale pentru detectarea valorii aberante. Observați diferențele semnificative în reprezentarea vizuală atunci când utilizați în comparație cu atunci când este utilizat modelul ML de izolare forestieră pentru detectarea valorii aberante. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

În modelul ML Izolație Forest, procentul de valori aberante detectate de algoritmul de detectare a anomaliilor IS este de 32,56%. Folosind același algoritm, restul de 67,44% din date se încadrează în intervalul normal, care este destul de sensibil. Scopul nostru este de a regla această sensibilitate folosind Python

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Metoda tradițională de detectare a valorii aberante

Modul tradițional de găsire a valorii aberante este prin utilizarea unei metode de diagramă cu casete . În această metodă, folosim IQR pentru a găsi ceea ce se încadrează în afara intervalului așteptat al datelor. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

În acest exemplu, acest punct unic de deasupra mustații este valoarea noastră anormală.

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Dacă traducem acest grafic vizual într-o diagramă circulară, vom obține acest lucru aberant, care este echivalent cu 2,33% din totalul datelor. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

În acest blog, vom învăța cum să folosim Metoda ML de Izolație Forest, să o ajustam pentru a se potrivi cu metoda tradițională și să creștem sau să reducem sensibilitatea acesteia.

Setul de date pentru algoritmul pădurii de izolare

Deschideți setul nostru de date în LuckyTemplates. Apoi faceți clic pe Transform Data. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Setul nostru de date pentru acest tutorial va apărea. Conține data , numărul de utilizatori , indexul și valorile aberante ale pădurii de izolare cu ieșirea 1 pentru intervalul normal și -1 pentru valori aberante  .

Avem, de asemenea, o coloană pentru Traditional Outlier și o coloană condiționată intitulată IS Anomaly Detecting reflecting Isolation Forest Outlier. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

A doua noastră interogare arată cadrul nostru de date pe care vom învăța cum să punem totul împreună. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Codurile Python

În panoul Proprietăți , putem vedea cele două scripturi Python care rulează . Creăm rezultatul Isolation Forest cu unul dintre aceste scripturi Python și generăm valorile aberante tradiționale cu celălalt. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Codul Python al algoritmului forestier de izolare

Faceți clic pe Executare script Python pentru a vedea codul. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

În acest cod Python, importăm panda ca pd și folosim ceva numit Isolation Forest. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

O pădure de izolare este un model bazat pe arbori care ia decizii pe baza unei structuri de arbore și apoi decide dacă este un valori aberant sau nu. Numim asta un model de ansamblu , deoarece folosește două metode diferite de a găsi un anumit valori aberante. 

Înlocuim, de asemenea, variabila set de date , care deține setul de date implicit, ca df

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Având în vedere setul nostru de date, nu vom avea nevoie de cele două linii de coduri evidențiate mai jos, așa că putem doar să ștergem acele linii. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Ceea ce facem este să instanțiem modelul.

Salvați modelul ca IsolationForest și lăsați modelul să învețe datele cu utilizatorii. Apoi, creați o nouă coloană numită Detectare anomalii , care va trece înapoi peste toate datele pe care le învață și va prezice care dintre ele ar trebui să fie un outlier sau nu. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Pentru această funcție, valoarea implicită pentru contaminare este setată la 0,5 . Astfel, este super sensibil în acest moment și va căuta o mulțime de valori aberante. De aceea, în graficul nostru circular anterior, avem o gamă foarte mare de valori aberante la 32,56%. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Pentru a o face mai puțin sensibilă, putem adăuga contaminare = .1 în funcția IsolationForest .

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

În cele din urmă, resetați indexul și faceți clic pe OK.

Rezultatul va afișa un tabel rezumativ. Mergeți la panoul Pași aplicați și faceți clic pe df.

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

În rezultat, putem găsi valorile aberante în coloana Detectare anomalii

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

De asemenea, vrem să vedem cum se comportă lângă valorile aberante tradiționale. 

Cod Python tradițional Outlier

Vom rula un alt script Python, care în acest exemplu este Run Python script1.

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Acest cod adaugă o funcție anormală folosind primul și al treilea quartile. Când scădem q1 din q3 , obținem Intervalul Interquartile (IQR)

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Următoarele două rânduri stabilesc condițiile pentru valorile aberante. Prima linie spune că orice valoare mai mică de 1,5 * iqr este considerată valori aberante negative sau mai mici. Acesta este și modul în care găsim valori aberante în mod tradițional.

De asemenea, știm că avem un punct aberant ca cel mai înalt punct al datelor noastre. Pentru a ține seama de acest lucru, a doua linie afirmă că punctele de date care sunt mai mari decât q3 + 1,5 * iqr sunt, de asemenea, considerate valori aberante. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Returnați setul de date și utilizați funcția outliers(df, „Utilizatori”) . Apoi faceți clic pe OK.

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Va apărea un tabel rezumativ similar cu cel pe care îl avem mai devreme. 

Dacă mergem la panoul Pași aplicați și facem clic pe Tip modificat 1 , vom obține coloanele Tradiționale aberante și Detectare anomalii una lângă alta, aceasta din urmă folosind 1 și -1 pentru a desemna valori aberante și nu.

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Cu toate acestea, atunci când folosim date cu Python, acestea pot părea încurcate. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Ceea ce putem face este să creăm o coloană suplimentară folosind Indexul din Adăugare coloană .

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Apoi, adăugați Index la coloana anterioară cu Merge , astfel încât să putem păstra toate informațiile din acea coloană/set de date inițial. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Odată ce avem totul împreună, ne putem rula codul și ne putem actualiza imaginile. Amintiți-vă că am schimbat contaminarea valorii aberante de la 0,5 la 0,1, așa că ar trebui să vedem că această parte a graficului se micșorează destul de mult. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Reveniți la imagini și faceți clic pe Aplicați modificări. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Observați cum Detectarea anomaliilor a trecut de la 32,56% la 11,63% din datele noastre. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

După cum vedem în rezultatele noastre, aceasta este o modalitate bună de a optimiza detectarea valorii aberante. 

De asemenea, amintiți-vă că atunci când oamenii folosesc metoda tradițională, pot folosi valori mai mici de 1,5, dar 1,5 x IQR este modul tradițional, totuși. 

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python

Algoritmul de izolare a pădurii pentru detectarea valorii aberante în Python


Detectarea și prezentarea rezultatelor aberante în LuckyTemplates
Crearea punctelor de declanșare a valorii aberante dinamice în LuckyTemplates
Funcția de detectare a anomaliilor LuckyTemplates: Cum funcționează

Concluzie

Folosind algoritmul Izolație Forest, putem identifica și exclude cu ușurință orice observație neobișnuită din setul nostru de date, îmbunătățind astfel acuratețea analizei noastre. Acest tutorial a oferit un ghid pas cu pas despre cum să utilizați algoritmul Isolation Forest pentru detectarea valorii aberante folosind Python, care ar trebui să vă ajute să începeți să-l implementați în propriile proiecte.

Ceea ce am făcut a fost o modalitate foarte ușoară de a folosi codul nostru Python pentru a găsi anomalii. Puteți optimiza în continuare acel algoritm modificând contaminarea și o serie de alte variabile pe care le puteți învăța prin pagina de coduri a lui Python

Toate cele bune,

Leave a Comment

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți