Nyheter, Prylar, Android, Mobiler, Appnedladdningar, Android

En praktisk guide till dummy variabel fälla med en lösning i Python

Följande artikel hjälper dig: En praktisk guide till dummy variabel fälla med en lösning i Python

För alla övervakade inlärningsproblem finns det två funktioner, den ena är den beroende variabeln och den andra är en förklarande variabel. Dessa förklarande variabler kan vara kvalitativa, vilket ofta kallas dummyvariabler. En dummyvariabel kan antingen vara en binär eller icke-binär kategorisk variabel. En metod för att kvantifiera dessa attribut är genom att konstruera artificiella variabler som får värdet antingen 0 eller 1. I artikeln kunde vi lära oss effekterna av artificiella variabler på algoritmerna. Följande är de ämnen som skulle diskuteras.

Innehållsförteckning

  1. Om dummy variabel
  2. Om multikollinearitet
  3. Om dummy variabel fälla
  4. Lösning för dummy variabel fälla

Låt oss börja med förståelsen av begreppet en dummyvariabel.

Om dummy variabel

I regressionsanalys representerar en dummyvariabel undergrupper av provet numeriskt. I det enklaste fallet en dummyvariabel där en kategori ges värdet 0 om kategorin finns i kontrollgruppen eller 1 om kategorin är i den behandlade gruppen. Dessa variabler är användbara eftersom en enda regressionsekvation kan tillämpas på flera grupper.

Därför är det inte nödvändigt att skriva separata ekvationsmodeller för varje undergrupp. I en ekvation fungerar dummyvariablerna som “switchar” som kopplar på och av olika parametrar. En annan fördel med en 0,1 dummykodad variabel är att den statistiskt kan behandlas som en intervallnivå variabel även om den är en nominell nivå variabel.

  • En nominell skala är en mätskala där de numeriska etiketterna endast används för att identifiera eller märka objekt. Skalan används vanligtvis för att mäta variabler som inte är numeriska (kvantitativa) eller där inga numeriska värden finns.
  • En intervallskala är en numerisk skala som märker och ordnar variabler baserat på ett känt, jämnt fördelat intervall mellan varje värde. Till exempel är intervalldata temperaturen i Celius, där skillnaden mellan 10 och 20 grader Celius är densamma som skillnaden mellan 50 och 60 grader Celius. Det är extremt tillförlitligt att beräkna avståndet mellan variabler med hjälp av de mått som används.

Låt oss förstå problemet med dessa dummyvariabler som händer på grund av multikollinearitet.

Letar du efter ett komplett förråd av Python-bibliotek som används inom datavetenskap, kolla här.

Om multikollinearitet

Multikollinearitet är en statistisk beräkning där de oberoende eller förklarande variablerna är relaterade till varandra. På grund av denna multikollinearitet kan modellalgoritmen inte beräkna det sanna sambandet mellan beroende och förklarande variabler eftersom resultatet av förutsägelsen har fel.

Var finns den?

I detta problem hittas multikollinearitet mellan de dummyvariabler som skapats från de ursprungliga variablerna. Det finns till exempel en kategorisk variabel med olika åldersgrupper märkta barn, vuxen och senior. Denna kategoriska variabel behövs för att kodas för förutsägelseändamål, nu genom att använda dummyvariabelkonceptet skulle tre dummyvariabler skapas som innehåller samma data från den kategoriska variabeln men nu kodade baserat på närvaro och frånvaro, men data är fortfarande bara densamma Saken som ändrades är att detta har kodats och delat upp i tre olika kolumner. Men dessa tre olika kolumner är härledda från den överordnade kategoriska variabeln.

Om dummy variabel fälla

Problemet uppstår när alla dummyvariabler/one-hot-kodade funktioner används för att träna modellen. På grund av multikollinearitet är det inte möjligt att träna en modell som kan ge korrekta resultat. Det är en fälla eftersom vikter för varje funktion finns i modellens ekvation så varje gång modellen förutsäger kommer resultatet med höga fel och därför har modellen fastnat i felfällan medan den producerar utdata.

Låt oss ta ett exempel för att förstå detta fenomen.

Det finns till exempel data relaterade till medarbetaren och det finns en avdelningsförklaringsvariabel där det finns fyra olika kategorier listade IT, Accounts, Logistics och Customer Care. Eftersom dessa är i objektdatatyper måste jag konvertera dem till numeriska datatyper för att använda dessa som en förklaring till förhållandet. Så skapade dummies för dessa variabler som heter Deparment_IT, Department_Accounts, Deparment_Logistics och Department_CustomerCare. Dessa variabler innehåller 0 och 1 som om det finns en närvaro av just den variabeln kommer den att märkas som 1 annars 0.

Problemet med dessa dummyvariabler är att de är multikollinjära eftersom det inte finns någon baslinje för dessa dummyvariabler. Med enklare ord kan Department_IT förutsägas med hjälp av de andra tre avdelningarna eftersom de alla är korrelerade. Så måste göra k-1 dummyvariabler istället för k (antal kategorier) variabler.

Låt oss förstå processen att rädda modellen från denna fälla.

Lösning för dummy variabel fälla

För att undvika problemet med multikollinearitet i summavariablerna använd en baslinje på vilken dessa dummyvariabler skapas. Så i exemplet ovan, ta IT-avdelningen som en baslinje genom vilken detta problem kan övervinnas.

Låt oss implementera denna teoretiska lösning i python.

Genomförande

Importera vanliga bibliotek

importera pandor som pd importera numpy som np

Läser data

df=pd.read_csv(“student-por.csv”) df_cat=df.select_dtypes(include=object) df_cat.head()

Uppgifterna är relaterade till elevernas prestationer i gymnasieskolan. Valde endast kategoriska funktioner för detta ändamål och denna datauppsättning hänvisas från ett Kaggle-förråd som är länkat i referensen.

Skapa dummies utan baslinjen

dum_trap=pd.get_dummies(data=df_cat) dum_trap.iloc[:5,:15]

Här använder du Pandas-funktionen get_dummies för att skapa dummyvariabler. Eftersom det skulle finnas många dummyvariabler så bara för visningsändamål med endast 15 funktioner.

Det finns totalt 43 dummyvariabler skapade men problemet med dessa variabler är multikollinearitet. För det finns inget basvärde för någon av dessa. Låt oss ställa in en baslinje för varje dummyvariabel genom att använda funktionen drop_first.

Skapa dummies med baslinje

dum=pd.get_dummies(data=df_cat,drop_first=True) dum.iloc[:5,:14]

Det totala antalet dummyvariabler som skapas reduceras till 26 från 43 och problemet med multikollinearitet minskas också.

Dom

En dummy variabel fälla är ett multikollinearitetsproblem på grund av vilket algoritmen förutsäger utdata med många fel och ökar risken för överanpassning. Det är ett vanligt misstag att inte sätta en baslinje för en dummyvariabel när man skapar artificiella variabler. I den här artikeln har vi täckt en praktisk diskussion om dummyvariabelfällan och lösningen på den.

Referenser

Table of Contents

Toggle