Hem Personliga finanser Hur man använder Python för att välja rätt variabler för datavetenskap - dummies

Hur man använder Python för att välja rätt variabler för datavetenskap - dummies

Innehållsförteckning:

Video: Javaprogrammering - Föreläsning 01 - Kursintroduktion 2025

Video: Javaprogrammering - Föreläsning 01 - Kursintroduktion 2025
Anonim

Att välja rätt variabler i Python kan förbättra inlärningsprocessen i datavetenskap genom att minska mängden brus information) som kan påverka elevens uppskattningar. Variabelt urval kan därför effektivt minska variationen av förutsägelser. För att bara involvera de användbara variablerna i träning och lämna de överflödiga, kan du använda dessa tekniker:

  • Univariate approach: Välj de variabler som är mest relaterade till målresultatet.

  • Grymt eller bakåtriktat tillvägagångssätt: Håll bara de variabler som du kan ta bort från inlärningsprocessen utan att skada dess prestanda.

Val av univariata åtgärder

Om du väljer att välja en variabel med dess associeringsnivå med sitt mål, ger klassen SelectPercentile ett automatiskt förfarande för att bara behålla en viss procentandel av de bästa associerade funktionerna. De tillgängliga mätvärdena för associering är

  • f_regression: Används endast för numeriska mål och baserad på linjär regressionsprestanda.

  • f_classif: Används endast för kategoriska mål och baserat på analys av varians (ANOVA) statistiskt test.

  • chi2: Utför chi-kvadratisk statistik för kategoriska mål, vilket är mindre förnuftigt för det olinjära förhållandet mellan prediktiv variabel och dess mål.

Vid bedömning av kandidater för ett klassificeringsproblem tenderar f_classif och chi2 att ge samma uppsättning toppvariabler. Det är fortfarande en bra praxis att testa valen från båda föreningens mätvärden.

Förutom att tillämpa ett direkt urval av de högsta percentilföreningarna, kan SelectPercentile också rangordna de bästa variablerna för att göra det lättare att bestämma vid vilken procentil att utesluta en funktion från att delta i inlärningsprocessen. Klassen SelectKBest är analog i sin funktionalitet, men den väljer de högsta k-variablerna, där k är ett tal, inte en percentil.

från sklearn. feature_selection import VäljPercentile från sklearn. feature_selection import f_regression Selector_f = SelectPercentile (f_regression, percentile = 25) Selector_f. fit (X, y) för n, s i zip (boston. feature_names, Selector_f. scores_): skriv ut 'F-poäng:% 3. 2ft för funktion% s '% (s, n) F-poäng: 88. 15 för funktionen CRIM F-poäng: 75. 26 för funktion ZN F-poäng: 153. 95 för funktionen INDUS F-poäng: 15. 97 för funktionen har CHAS F-poäng: 112. 59 för funktionen NOX F-poäng: 471. 85 för funktion RM F-poäng: 83.48 för funktion AGE F-poäng: 33. 58 för funktion DIS F-poäng: 85. 91 för funktion RAD F-poäng: 141. 76 för funktion TAX F-poäng: 175. 11 för funktion PTRATIO F-poäng: 63. 05 för funktionen B F-poäng: 601. 62 för funktionen LSTAT

Med hjälp av nivån för associeringsutgången kan du välja de viktigaste variablerna för din maskinlärningsmodell, men du bör se upp för dessa möjliga problem: > Vissa variabler med hög association kan också vara mycket korrelerade, introducera duplicerad information, vilket fungerar som buller i lärandeprocessen.

  • Vissa variabler kan straffas, särskilt binära (variabler som indikerar status eller karaktäristik med värdet 1 när det är närvarande, 0 när det inte är). Ta till exempel märke att utgången visar den binära variabeln CHAS som den minst associerade med målvariabeln (men du vet från tidigare exempel att det är inflytelserikt från korsvalideringsfasen).

  • Den univariata urvalsprocessen kan ge dig en verklig fördel när du har ett stort antal variabler att välja från och alla andra metoder blir beräkningsmässigt oföränderliga. Det bästa sättet är att minska värdet på SelectPercentile med hälften eller mer av de tillgängliga variablerna, minska antalet variabler till ett hanterbart nummer och följaktligen tillåta användningen av en mer sofistikerad och mer exakt metod som en girig sökning.

Använda en girig sökning

När du använder ett univariat urval, måste du själv bestämma hur många variabler som ska hållas: Greedy selection minskar automatiskt antalet funktioner som ingår i en inlärningsmodell utifrån deras effektiva bidrag till prestanda mätt av felmåttet.

RFECV-klassen, som passar data, kan ge dig information om antalet användbara funktioner, peka ut dem och automatiskt omvandla X-data, genom att metoden omvandlas till en reducerad variabel uppsättning, som visas i Följande exempel:

från sklearn. feature_selection import RFECV selector = RFECV (estimator = regression, cv = 10, scoring = "mean_squared_error") väljare. passar (X, Y) print ("Optimal antal funktioner:% d"% väljare. n_features_) Optimalt antal funktioner: 6

Det är möjligt att få ett index till den optimala variabeln som ställs genom att anropa attributet support_ från RFECV klass när du passar den.

skriv ut boston. feature_names [väljaren. support_] ['CHAS' NOX "RM" DIS "PTRATIO" LSTAT "]

Lägg märke till att CHAS nu ingår bland de mest prediktiva funktionerna, vilket står i kontrast till resultatet från den univariata sökningen. RFECV-metoden kan detektera om en variabel är viktigt, oavsett om det är binärt, kategoriskt eller numeriskt, eftersom det direkt utvärderar rollen som funktionen spelar i prediktionen.

RFECV-metoden är säkerligen effektivare jämfört med den -univariära metoden, eftersom den betraktar högt korrelerade funktioner och är inställd på att optimera utvärderingsåtgärden (som vanligen inte är Chi-kvadrat eller F-poäng). Det är en girig process, det är beräknat för beräkningar och kan bara approximera den bästa uppsättningen av prediktorer.

Eftersom RFECV lär sig den bästa uppsättningen variabler från data, kan valet överföras, vilket är vad som händer med alla andra maskininlärningsalgoritmer. Att försöka RFECV på olika prov av träningsdata kan bekräfta de bästa variablerna som ska användas.

Hur man använder Python för att välja rätt variabler för datavetenskap - dummies

Redaktörens val

Vad är en Java-karta? - dummies

Vad är en Java-karta? - dummies

Arrays och specialiserade listor gör det möjligt att utföra en fantastisk uppsättning uppgifter med Java. Det finns dock situationer där en Java-applikation behöver något som är mer relaterat till en databas, utan att egentligen ha allt databasbagage (som att behöva köpa en separat applikation). Till exempel kanske du vill kunna ...

Några få saker om Java Math - dummies

Några få saker om Java Math - dummies

Tro det eller inte, datorer - även de mest kraftfulla - Ha vissa begränsningar när det gäller att utföra matematiska beräkningar. Dessa begränsningar är vanligtvis obetydliga, men ibland slår de sig och biter på dig. Här är de saker du behöver se upp för när du gör matte i Java. Helhetsflöde Det grundläggande problemet ...

Vad är recursion i Java Programmering? - dummies

Vad är recursion i Java Programmering? - dummies

Rekursion är en grundläggande programmeringsteknik som du kan använda i Java, där en metod kallar sig för att lösa ett problem. En metod som använder denna teknik är rekursiv. Många programmeringsproblem kan lösas endast genom rekursion, och vissa problem som kan lösas med andra tekniker löses bättre genom rekursion. En av ...

Redaktörens val

4 Måste-inkludera i din blogg sidobardesign - dummies

4 Måste-inkludera i din blogg sidobardesign - dummies

Din bloggens sidofält är viktig fastighet som bör innehålla de element du vill ha mest. När du utformar din blogg sidofält kan du dra från en nästan oändlig lista över sidospårelement. Genom att välja noggrant vad som ska inkluderas (och vad som inte ska inkluderas) kan du ställa in din blogg från andra.

5 Användbara Wordpress Plugins - dummies

5 Användbara Wordpress Plugins - dummies

Om du bloggar på en självhävd plattform med WordPress-programvara, är det dags att anpassa din blogg med plug-ins - programvara som kan "anslutas" till din befintliga WordPress bloggprogramvara. Plug-ins gör det möjligt för dig att göra allt från funktionsbildspel i dina blogginlägg för att ansluta sociala medier till din webbplats. Här är fem användbara ...

7 Sätt att erövra Writer's Block som en Blogger - dummies

7 Sätt att erövra Writer's Block som en Blogger - dummies

Varje bloggare möter författarens block i ett tid eller annan. Om du är den typ av bloggare som sköter innehåll varje dag, kan författarens block vara stäverande. Kan du inte ta en paus för att få ditt skrivande mojo tillbaka? Prova en (eller flera) av dessa sju sätt att slå författarens block för att få dig tillbaka ...

Redaktörens val

10 Stora elektronikkomponentkällor - dummies

10 Stora elektronikkomponentkällor - dummies

Letar du efter några bra källor till dina elektroniska delar? Denna lista ger dig några fleråriga favoriter, både inom och utanför Nordamerika. Denna lista är inte uttömmande. Du hittar bokstavligen tusentals specialutbud för ny och begagnad elektronik. Plus, Amazon och eBay ger virtuella marknadsplatser för alla sorters säljare - ...

Elektronik Basics: Resistance - dummies

Elektronik Basics: Resistance - dummies

I elektronikvärlden är motståndet inte meningslöst. Faktum är att motstånd kan vara mycket användbart. Utan motstånd skulle elektronik inte vara möjligt. Elektronik handlar om att manipulera strömmen av ström, och ett av de mest grundläggande sätten att manipulera strömmen är att minska det genom resistans. Utan motstånd strömmar strömmen oreglerad och där ...

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

För att berätta för BASIC Stamp vad du vill göra i ditt digitala elektronikprojekt måste du programmera det. BASIC Stamp Windows Editor är den programvara som du använder på din dator för att skapa program som kan laddas ner till en BASIC Stamp-mikrokontroller. Denna programvara är tillgänglig gratis från Parallax webbplats. ...