Tillräkning av nollor
Alltför många saknade värden kan ha en negativ inverkan på kvaliteten på din maskininlärningsmodell. Tillräkning är en metod för att fylla i saknade värden, s.k. nollvärden. Det kan finnas många orsaker till att data saknas, t.ex. ett databasfel, en användare som inte fyller i en del av ett formulär eller om du börjar samla in nya data och äldre poster i datauppsättningen inte har den nya datapunkten.
Det är viktigt att förstå vilka effekter tillräkningen kan ha på data. Tillräkningen bevarar radens eller kolumnens prediktiva effekt, men den kan också skapa mönster som tidigare inte fanns eller lägga till brus i ett mönster som fanns. Detta minskar uppgifternas giltighet.
Det kan vara lämpligt att du ser över dina metoder för datainsamling för att säkerställa att data är fullständiga och för att införa nya processer vid behov. Om du vill behålla representationen av ett tomt värde kan du fylla i nollor med ett värde som "annat" eller "okänt".
Tillräkning av nollor vid automatisk förbehandling
I Qlik AutoML använder automatisk dataförbehandling tillräkning av nollor för att förbereda din datauppsättning för träning. Under den automatiska förbehandlingen av data hanteras nollvärden genom uteslutning av kolumner som saknar mer än 50 procent av värdena och genom tillräkning av saknade värden. Saknade värden i kategoriska funktioner tillräknas värdet "annat" och saknade värden i numeriska funktioner tillräknas medelvärdet.
Ytterligare överväganden för autogenererade funktioner och tidskänslig utbildning.
Se Automatisk förberedelse och omvandling av data för mer information om förbehandling.
Autogenererade funktioner
Med automatisk funktionsgenerering skapar AutoML nya funktioner från överordnade funktioner. För autogenererade funktioner genomförs tillräkning av nollor enligt följande:
-
Om du inkluderar autogenererade datumfunktioner i träningen är processen för tillräkning av nollor för dessa funktioner densamma som för numeriska funktioner.
-
Om du istället använder överordnade datumfunktioner är processen för tillräkning av nollor densamma som för kategoriska funktioner.
-
För kategoriska funktioner som behandlas som fritext är tillräkningen av nollor densamma som för kategoriska funktioner.
Tidskänslig träning
Om tidskänslig träning är aktiverad utförs tillräkningen av nollor på följande sätt:
-
Alla rader i träningsdatauppsättningen som har ett null-värde för det valda dataindexet tas bort under förbehandlingen. Dessa rader används inte för att träna modellerna.
-
För numeriska funktioner utförs tillräkningen av nollor med linjär interpolation. Linjär interpolation används också för autogenererade datumfunktioner.
-
För kategoriska funktioner är processen för tillräkningen av nollor densamma som när du inte använder tidskänslig träning.
-
Om du inkluderar datumfunktioner utan automatisk funktionsgenerering är processen för tillräkning av nollor densamma som för kategoriska funktioner.
-
För kategoriska funktioner som behandlas som fritext är tillräkningen av nollor densamma som för kategoriska funktioner.
Se Skapa tidskänsliga modeller för mer information om tidskänslig träning.
Hur fungerar tillräkning?
Följande metoder är vanliga metoder för tillräkning av nollor.
Numeriska värden
Ett bra standardalternativ är att tillräkna medelvärdet. Om de saknade värdena är normalfördelade är det som att lägga vikt på mitten av en gungbräda – det påverkar inte vikten på någon av sidorna. Du bör dock alltid tänka på vad värdet försöker representera. Om t.ex. vissa värden för försäljningspriset är noll i dina försäljningsdata, beror det då på ett databasfel eller använde köparen en kupong som betalningsmedel? Skulle det vara mer meningsfullt att ange 0 eller något annat värde än medelvärdet?
Kategoriska värden
Ett bra standardalternativ för kategoriska värden är att lägga till ytterligare en kategori och kalla den "Annat", "Okänt" eller till och med "Saknas". Denna kategori kan innehålla den extra variansen om de saknade värdena är slumpmässigt fördelade, eller öka i funktionsbetydelse om det finns ett meningsfullt samband mellan detta saknade värde och målvärdet.
En reservlösning är att beräkna genomsnittet i form av typ. Precis som med numeriska värden är det alltid viktigt att tänka på både vad värdet faktiskt försöker representera och varför värdet kan saknas. Om du vet att de flesta av de saknade värdena troligen är typvärdet kan du tillräkna med typvärdet. Om det inte är känt eller om det råder osäkerhet kan du tillräkna det kategoriska värdet med en fyllnadstext som är ett nytt unikt värde för datauppsättningen.
Effekter av att tillräkna numeriska värden
Numerisk tillräkning 1 visar ett spridningsdiagram med en linje med bästa anpassning. Vi har ett numeriskt värde längs kategoriaxeln (x) och ett målvärde längs värdeaxeln (y). Detta verkar vara en bra anpassning, men det tar bara hänsyn till datapunkter där x är känt.
I numerisk tillräkning 2 har vi tillräknat medelvärdet. De saknade värdena verkar dock inte vara slumpmässiga. Det snedvrider linjen för bästa anpassning och ger upphov till brus, vilket minskar modellens totala noggrannhet.
Diagrammet i Numerisk tillräkning 3 visar hur det skulle se ut om vi tillräknar medelvärdet när de saknade värdena är slumpmässigt fördelade. Med andra ord, när det inte finns någon ytterligare kunskap att vinna genom att veta om värdet fanns eller saknades. När de saknade värdena är slumpmässigt fördelade ändras inte linjen för bästa anpassning. Om vi hade tillräknat 0 i stället för medelvärdet skulle det ha ändrat linjen för bästa anpassning på samma sätt som i Numerisk tillräkning 2.
Exempel: behörighet för lån
Ett konkret exempel är om x är årsinkomsten och y det belopp som en person skulle kvalificera sig med för att få ett lån. Vi skulle förvänta oss ett förhållande där ju mer pengar en person tjänar, desto mer pengar kan han eller hon låna. Mönstret skulle likna det som gäller för Numerisk tillräkning 1 ovan.
Föreställ dig att personer som tjänar mindre är mindre benägna att uppge sin årsinkomst. I det här fallet saknas x-värdet av en särskild anledning. Om medelvärdet för dessa värden tillskrevs skulle det snedvrida modellens resultat. Resultatet skulle bli något i stil med Numerisk tillräkning 2.
Tänk dig nu att vissa poster i databasen raderades slumpmässigt. Posterna innehöll uppgifter om hur mycket pengar vissa personer tjänar, men inte uppgifter om personen i fråga. X-värdet är alltså slumpmässigt noll. Denna effekt beskrivs i Numerisk tillräkning 3 och är ett fall där vi tryggt kan tillräkna det saknade värdet.
En annan sak att tänka på är: vad händer om 0 tillräknas i stället för medelvärdet? I exemplet med lånekvalificering är det förmodligen inte korrekt att säga att någon tjänar 0 dollar per år. Det skulle snedvrida modellen på samma sätt som Numerisk tillräkning 2.
Effekter av tillräkning av kategoriska värden
I det numeriska fallet ovan använde vi medelvärdet för att tillräkna saknade värden. En enkel metod för kategoriska värden är att ta typvärdet, som är det mest frekvent förekommande värdet. Vissa av utmaningarna med att tillräkna typvärdet är desamma som med att tillräkna medelvärdet för ett numeriskt värde.
I diagrammet nedan finns det ett mönster i de saknade värdena i Missing_1 i förhållande till målet, medan Missing_2 är slumpmässigt fördelat. Vi kan se detta eftersom Missing_2 matchar det övergripande genomsnittliga målvärdet. Missing_1 liknar Numerisk tillräkning 2 och Missing_2 liknar Numerisk tillräkning 3.
Skillnaden mot det numeriska exemplet är att både Missing_1 och Missing_2 snedvrider mönsterigenkänningen i det här fallet. Den snedvrids bara för en delmängd av data, kategori B, som skulle vara det tillräknade värdet om man tillräknade med typvärdet, eftersom det är den största kategorin.
Snedvridning av förhållandet mellan ett enskilt värde och målvärdet är inte den enda risken med tillräkning, men är bland de vanligaste och lättaste att utvärdera. Andra risker tenderar att bara öka bruset och minska precisionen. Lyckligtvis kan risken för snedvridning minskas avsevärt genom att man utesluter dimensioner som är relativt fåtaliga. Det diskuteras ofta exakt vilka fåtalighetsnivåer som ska tillåtas i en kolumn eller rad, men det diskuteras mindre ofta att tillräkning av värden har potential att förvränga data på ett sätt som gör att det inte längre finns någon representativitet för vad data försöker beskriva.