Pipe In R: Anslutningsfunktioner med Dplyr
I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.
Outlier-detektering är en viktig uppgift inom området maskininlärning. Den används för att identifiera ovanliga observationer eller datapunkter som avviker från datasetets allmänna trend. En effektiv algoritm för detektering av extremvärden är algoritmen Isolation Forest .
I dagens blogg kommer vi att täcka grunderna i Isolation Forest-algoritmen och demonstrera hur man använder den för att upptäcka extremvärden i en datauppsättning med hjälp av . Du kan se hela videon av denna handledning längst ner på den här bloggen .
Innehållsförteckning
Isolation Forest Algorithm vs Box Plot Method
Nedan visas två bilder för avvikande upptäckt. Lägg märke till de betydande skillnaderna i den visuella representationen när du använder den jämfört med när Isolation Forest ML-modellen för avvikande upptäckt används.
I Isolation Forest ML-modellen är andelen extremvärden som detekteras av IS Anomaly Detection-algoritmen 32,56 %. Med samma algoritm faller de återstående 67,44% av datan inom normalområdet, vilket är ganska känsligt. Vårt mål är att finjustera denna känslighet med .
Den traditionella metoden för att upptäcka avvikelser
Det traditionella sättet att hitta en outlier är att använda en boxplotmetod . I den här metoden använder vi IQR för att hitta vad som faller utanför det förväntade intervallet för data.
I det här exemplet är den här enstaka punkten ovanför morrhåren vår avvikelse.
Om vi översätter den här visuella grafen till ett cirkeldiagram får vi denna speciella extremvärde som motsvarar 2,33 % av den totala datan.
I den här bloggen kommer vi att lära oss hur man använder Isolation Forest ML-metoden, finjustera den för att matcha den traditionella metoden och öka eller minska dess känslighet.
Datauppsättningen för isoleringsskogsalgoritm
Öppna vår datauppsättning i LuckyTemplates. Klicka sedan på Transformera data.
Vår datauppsättning för denna handledning kommer att dyka upp. Den innehåller Datum , antal användare , Index och Isolation Forest Outlier med utgång 1 för normalintervallet och -1 för extremvärden.
Vi har också en kolumn för Traditional Outlier och en villkorlig kolumn med titeln IS Anomaly Detection som återspeglar Isolation Forest Outlier.
Vår andra fråga visar vår dataram som vi lär oss hur man sätter ihop allt.
Pythonkoderna
På rutan Egenskaper kan vi se våra två körande skript. Vi skapar Isolation Forest-utgången med ett av dessa skript och genererar den traditionella outliern med den andra.
Isolation Forest Algoritm Python Code
Klicka på Kör Python-skript för att se koden.
I denna Python-kod importerar vi som pd och använd något som heter Isolation Forest.
En isoleringsskog är en trädbaserad modell som fattar beslut baserat på en trädstruktur och sedan avgör om det är en outlier eller inte. Vi kallar det för en ensemblemodell eftersom den använder två olika metoder för att hitta en viss extremvärde.
Vi ersätter också datasetvariabeln , som håller vår datauppsättning som standard, som df .
Med tanke på vår datauppsättning kommer vi inte att behöva de två raderna med koder som är markerade nedan så vi kan bara ta bort dessa rader.
Det vi gör är att instansiera modellen.
Spara modellen som IsolationForest och låt modellen lära sig data med användare. Skapa sedan en ny kolumn som heter Anomaly Detection som kommer att gå tillbaka över all data som den lär sig och förutsäga vilken som ska vara en avvikare eller inte.
För denna funktion är standardinställningen för kontaminering inställd på 0,5 . Således är den superkänslig för tillfället och kommer att leta efter många extremvärden. Det är därför vi i vårt cirkeldiagram tidigare har ett mycket högt intervall av extremvärden på 32,56%.
För att göra det mindre känsligt kan vi lägga till kontaminering = .1 i IsolationForest -funktionen.
Slutligen, återställ indexet och klicka på OK.
Resultatet kommer att visa en sammanfattningstabell. Gå till rutan Tillämpade steg och klicka på df.
I utgången kan vi hitta extremvärdena under kolumnen Anomaly Detection .
Vi vill också se hur den presterar vid sidan av den traditionella avvikaren.
Traditionell Outlier Python-kod
Vi kör ett annat Python-skript som i det här exemplet är Kör Python-skript1.
Denna kod lägger till en outlier-funktion med den första och tredje kvartilen. När vi subtraherar q1 från q3 får vi Interquartile Range (IQR) .
De följande två raderna ställer villkoren för extremvärdena. Den första raden säger att allt mindre än 1,5 * iqr anses vara negativa eller lägre extremvärden. Det är också så vi hittar extremvärden på traditionellt sätt.
Vi vet också att vi har en extremvärde som högsta punkt i vår data. För att ta hänsyn till det anger den andra raden att datapunkter som är högre än q3 + 1,5 * iqr också anses vara extremvärden.
Returnera den datamängden och använd funktionen outliers(df, 'Users') . Klicka sedan på OK.
En sammanfattningstabell liknande den vi har tidigare kommer att dyka upp.
Om vi går till rutan Tillämpade steg och klickar på Ändrad typ1 , får vi kolumnerna Traditional Outlier och Anomaly Detection sida vid sida, där de senare använder 1 och -1 för att beteckna extremvärden och inte.
Men när vi använder datum med Python kan de verka trassliga.
Vad vi kan göra är att skapa en extra kolumn med hjälp av indexet från Lägg till kolumn .
Lägg sedan till Index i föregående kolumn med Merge , så att vi kan bevara all information i den ursprungliga kolumnen/datauppsättningen.
När vi har samlat allt kan vi köra vår kod och uppdatera våra bilder. Kom ihåg att vi ändrade kontamineringen av extremvärdet från 0,5 till 0,1, så vi borde se denna del av grafen krympa en hel del.
Gå tillbaka till bilderna och klicka på Verkställ ändringar.
Lägg märke till hur anomalidetekteringen gick hela vägen från 32,56 % ner till 11,63 % av vår data.
Som vi ser i våra resultat är detta ett bra sätt att optimera vår detektering av extremvärden.
Kom också ihåg att när människor använder den traditionella metoden kan de använda värden lägre än 1,5, men 1,5 x IQR är det traditionella sättet ändå.
Slutsats
Genom att använda Isolation Forest-algoritmen kan vi enkelt identifiera och utesluta ovanliga observationer från vår datauppsättning, vilket förbättrar noggrannheten i vår analys. Den här handledningen har gett en steg-för-steg-guide om hur du använder Isolation Forest-algoritmen för att detektera avvikelser med Python, vilket bör hjälpa dig att komma igång med att implementera den i dina egna projekt.
Det vi gjorde var en väldigt enkel kod för att hitta anomalier. Du kan optimera den algoritmen ytterligare genom att modifiera kontaminering och en mängd andra variabler som du kan lära dig via teckentabellen.
Med vänliga hälsningar,
I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.
RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.
Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!
Excel Formler Fuskblad: Mellanvägledning
LuckyTemplates Kalendertabell: Vad är det och hur man använder det
Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.
Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.
Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.
I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.
Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.