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 2024

Video: Javaprogrammering - Föreläsning 01 - Kursintroduktion 2024
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

Hur man lägger till text i en sätter () Funktion i C Programmering

Hur man lägger till text i en sätter () Funktion i C Programmering

När du behöver visa en annan textrad, använd C-programmeringsfärdigheterna för att skapa en annan puts () -funktion i källkoden, som visas i Visa två textlinjer. VISA TILL TEXTFINER # inkludera int main () {sätter ("Hickory, Dickory, Dock,"); sätter ("musen sprang klockan."); returnera (0);} Den andra ...

Förklarar variabler i C-dummies

Förklarar variabler i C-dummies

Variabler är det som gör dina program zooma. Programmering kan bara inte bli gjort utan dem. Så om du inte har introducerats till variabler än, här går du. Valerie Variable är en numerisk variabel. Hon älskar att hålla nummer - vilket nummer som helst; det spelar ingen roll. När hon ser ett lika tecken tar hon ett värde och ...

Redaktörens val

Gör rädsla för din vän - dummies

Gör rädsla för din vän - dummies

Rädsla är lika verklig som mod. Även om värdet av rädsla inte är lika uppenbart som modets värde, har det dess fördelar. Rädsla är din instinkt som säger att du är obehaglig - även om situationen inte kommer att skada dig. Alla har haft den känslan när man hellre drar locket ...

Hur man ökar din självmedvetenhet - dummies

Hur man ökar din självmedvetenhet - dummies

Du kommer att vara med dig själv under en livstid. Ingenting kommer att förändra det faktum. Att lära känna, som att lyssna på och uppskatta själv är avgörande för din sanity. Kanske kommer du till att älska, acceptera och omfamna alla du är, är svår för dig att föreställa dig just nu, men du kan göra ...

Hur man ökar din mentala flexibilitet - dummies

Hur man ökar din mentala flexibilitet - dummies

ÄR flexibel i arbete och relationer är ett tecken på en högpresterande. Medan perfektionister är styva och obehagliga i sitt arbete och hur de interagerar med andra, är högpresterande mer öppna och tillmötesgående. Att vara mer flexibel på jobbet gav Ralph aldrig förslag under brainstorming vid gruppmöten. Han kände att hans lag ...

Redaktörens val

Nätverksadministration: Linux-installation och virtuella konsoler - dummies

Nätverksadministration: Linux-installation och virtuella konsoler - dummies

Linux är i sig ett kommandoradsorienterat operativsystem. Grafiska användargränssnitt - inklusive installationsprogrammets GUI - tillhandahålls av en valfri komponent som heter X Window System. Men medan du arbetar med det grafiska användargränssnittet för installationsprogrammet, håller Linux flera ytterligare kommandorads-konsoler öppna. Normalt behöver du inte ...

Nätverksadministration: Linux-loggning, logg och systemavstängning - dummies

Nätverksadministration: Linux-loggning, logg och systemavstängning - dummies

Alla användare som åtkomst ett Linux-system, lokalt eller över ett nätverk, måste verifieras av ett giltigt användarkonto på systemet. I det följande får du veta hur du loggar in och ut på ett Linux-system och hur du stänger av systemet. Logga in När Linux startar upp visas det ...

Nätverksadministration: Licensserver - Dummies

Nätverksadministration: Licensserver - Dummies

I vissa program kan du köpa nätverkslicenser som gör att du kan installera programvaran på många datorer som du vill, men reglera antalet personer som kan använda programvaran vid en viss tidpunkt. För att styra hur många som använder programvaran, är en särskild licensserver inrättad. När en användare börjar ...