Hem Personliga finanser 10 Sätt att förbättra dina maskinlärningsmodeller - dummies

10 Sätt att förbättra dina maskinlärningsmodeller - dummies

Innehållsförteckning:

Video: 10 sätt hur man kan förbättra sin hälsa, gratis & enkelt! 2024

Video: 10 sätt hur man kan förbättra sin hälsa, gratis & enkelt! 2024
Anonim

Nu när du är maskininlärningsalgoritmen har slutat lära dig från data som erhållits med Python eller R, funderar du på resultat från din testuppsättning och undrar om du kan förbättra dem eller verkligen har nått det bästa möjliga resultatet. Det finns ett antal kontroller och åtgärder som tyder på metoder du kan använda för att förbättra maskinlärningsprestanda och uppnå en mer generell prediktor som kan fungera lika bra med din testuppsättning eller nya data. Denna lista med tio tekniker ger dig möjligheter att förbättra resultatet som uppnåtts med hjälp av maskininlärningsalgoritmer.

Studiera inlärningskurvor

Som ett första steg för att förbättra dina resultat måste du bestämma problemen med din modell. Lärarkurvor kräver att du verifierar mot en testuppsättning eftersom du varierar antalet träningsföremål. Du märker omedelbart om du finner stor skillnad mellan dina in-sample och out-of-sample fel. En bred initial skillnad är ett tecken på uppskattningsvariation; Omvänt har fel som är både höga och liknande ett tecken på att du arbetar med en förutseende modell.

Python hjälper dig att enkelt rita inlärningskurvor med funktionen Scikit-learn (). Du kan också enkelt uppnå samma resultat med hjälp av R med anpassade funktioner, vilket beskrivs av Revolution analytics-bloggen.

Använda korrigering korrekt

Det är ett vanligt problem att se en stor skillnad mellan värderingsvärdena (CV) och resultatet som visas med en testuppsättning eller nya data. Att ha detta problem innebär att något gick fel med korsvalideringen. Utöver det faktum att CV inte är en bra prestanda förutsägelse innebär detta problem också att en vilseledande indikator har lett till att du modellerar problemet felaktigt och uppnår otillfredsställande resultat.

Korsvalidering ger dig tips när de steg du tar är korrekta. Det är viktigt, men inte kritiskt, att CV-uppskattningar exakt replikerar felmätningar utan mätprov. Det är emellertid avgörande att CV-beräkningar korrekt reflekterar förbättring eller försämring i testfasen på grund av dina modelleringsbeslut. Generellt finns det två anledningar att värderingsuppskattningarna kan variera från det verkliga felresultatet:

  • Snooping
  • Felaktig provtagning

Python erbjuder en stratifierad k-viks CV-provtagare. R kan stratifiera prover med hjälp av createFolds-metoden i caret-biblioteket när du anger y-parametern som en faktor.

Välja rätt fel eller mätvärde

Att försöka optimera ett felmått baserat på medianfel genom att använda en inlärningsalgoritm baserad på medelfelet ger dig inte det bästa resultatet om du inte hanterar optimeringsprocessen i ett sätt som fungerar till förmån för din valda mätvärde.När du löser ett problem med data- och maskininlärning måste du analysera problemet och bestämma den idealiska metriska för att optimera.

Exempel kan hjälpa till mycket. Du kan få många av dem från akademiska papper och från offentliga maskininlärningstävlingar som noggrant definierar specifika problem när det gäller data och fel / poängmått. Leta efter en tävling vars mål och data liknar din, och kontrollera sedan den begärda metriska.

Söka efter de bästa hyperparametrarna

De flesta algoritmer fungerar ganska bra ut ur rutan med hjälp av standardparameterns inställningar. Du kan dock alltid uppnå bättre resultat genom att testa olika hyperparametrar. Allt du behöver göra är att skapa en nätverkssökning bland möjliga värden som dina parametrar kan ta och utvärdera resultaten med rätt fel eller mätvärde. Sökningen tar tid, men det kan förbättra dina resultat.

När en sökning tar för lång tid att slutföra, kan du ofta uppnå samma resultat genom att arbeta på ett urval av dina ursprungliga data. Färre exempel som valts slumpmässigt kräver färre beräkningar, men de brukar anta att samma lösning. Ett annat knep som kan spara tid och ansträngning är att göra en randomiserad sökning, vilket begränsar antalet hyperparameterkombinationer för att testa.

Testa flera modeller

Testa flera modeller, som börjar med de grundläggande modellerna - de modeller som har mer bias än varians. Du bör alltid gynna enkla lösningar över komplexa. Du kan upptäcka att en enkel lösning fungerar bättre.

Representerar utförandet av olika modeller med samma diagram är användbart innan du väljer det bästa för att lösa ditt problem. Du kan placera modeller som används för att förutse konsumentbeteende, till exempel ett svar på ett kommersiellt erbjudande, i specialvinstscheman och lyftkartor. Dessa diagram visar hur din modell utför genom att partitionera resultaten i deciler eller mindre delar.

Eftersom du kanske bara är intresserad av de konsumenter som sannolikt kommer att svara på ditt erbjudande, kommer att beställa förutsägelser från de flesta till minst sannolika, betona hur bra dina modeller är för att förutsäga de mest lovande kunderna. Dessa Quora-svar hjälper dig att se hur vinst och lyftdiagram fungerar: Vad är ROC Curve? och vad är lyftkurvan?.

Testning av flera modeller och introspecting kan också ge förslag på vilka funktioner som ska omvandlas för funktionsskapande, eller vilken funktion som släpper ut när du gör funktionsval.

Medelmodeller

Maskininlärning innebär att man bygger många modeller och skapar många olika förutsägelser, alla med olika förväntade felprestanda. Det kan överraska dig att veta att du kan få ännu bättre resultat genom att jämföra modellerna tillsammans. Principen är ganska enkel: Beräkningsvariationen är slumpmässig, så genom att medelvärda många olika modeller kan du förstärka signalen och utesluta det brus som ofta kommer att avbryta sig.

Ibland kan resultaten från en algoritm som fungerar bra, blandas med resultaten från en enklare algoritm som inte fungerar lika bra, skapa bättre förutsägelser än att använda en enda algoritm.Underskatta inte bidrag som levereras från enklare modeller, till exempel linjära modeller, när du i genomsnitt ger resultat med utdata från mer sofistikerade algoritmer, till exempel gradientförstärkning.

Stapelmodeller

Av samma skäl att medelvärdet fungerar kan stapling också ge dig bättre prestanda. I stapling bygger du dina maskininlärningsmodeller i två steg. Inledningsvis förutspår denna teknik flera resultat med olika algoritmer, där alla lär sig av de funktioner som finns i dina data. Under den andra fasen, istället för att ge funktioner som en ny modell kommer att lära, ger du den modellen med förutsägelserna för de andra, tidigare utbildade modellerna.

Att använda ett tvåstegs-tillvägagångssätt är motiverat när man gissar komplexa målfunktioner. Du kan bara approximera dem genom att använda flera modeller tillsammans och sedan genom att kombinera resultatet av multiplikationen på ett smart sätt. Du kan använda en enkel logistisk regression eller ett komplext trädsemble som en andra stegs modell.

Netflix-tävlingen ger bevis och en detaljerad illustration om hur heterogena modeller kan staplas ihop för att bilda mer kraftfulla modeller. Genomförandet av denna lösning som en fungerande applikation kan dock vara ganska besvärlig.

Användning av funktionsteknik

Om du tror att bias fortfarande påverkar din modell, har du lite annat val än att skapa nya funktioner som förbättrar modellens prestanda. Varje ny funktion kan göra gissning av målsvaret enklare.

Automatisk funktionalisering är möjlig med hjälp av polynomial expansion eller stödvektormaskiner klassen av maskininlärningsalgoritmer. Supportvektormaskiner kan automatiskt leta efter bättre funktioner i högdimensionella funktionsutrymmen på ett sätt som är både beräkningsmässigt snabbt och minnesoptimalt.

Men inget kan verkligen ersätta din kompetens och förståelse för den metod som behövs för att lösa det dataproblem som algoritmen försöker lära sig. Du kan skapa funktioner utifrån dina kunskaper och idéer om hur sakerna fungerar i världen. Människor är fortfarande oslagbara, och maskiner kan inte enkelt ersätta dem.

Välja funktioner och exempel

Om uppskattningsvariationen är hög och din algoritm är beroende av många funktioner måste du beskära vissa funktioner för bättre resultat. I detta sammanhang är det lämpligt att minska antalet funktioner i din datamatris genom att välja de som har det högsta prediktiva värdet.

Vid arbete med linjära modeller är linjära stödvektormaskiner eller neurala nätverk, regularisering alltid ett alternativ. Både L1 och L2 kan minska inflytandet av redundanta variabler eller till och med ta bort dem från modellen. Stabilitetsvalet utnyttjar L1-förmågan att utesluta mindre användbara variabler. Tekniken återställer träningsdata för att bekräfta uteslutningen.

Du kan lära dig mer om stabilitetsval genom att titta på exemplet på webbplatsen Scikit-learn. Dessutom kan du öva med att använda RandomizedLogisticRegression och RandomizedLasso Scikit-learn-funktionerna i linear_model-modulen.

Letar du efter mer data

Efter att ha försökt alla tidigare förslag kan du fortfarande ha en stor variation av förutsägelser att hantera. I det här fallet är ditt enda alternativ att öka din träningsuppsättning. Prova att öka ditt prov genom att tillhandahålla nya data, vilket kan översättas till nya fall eller nya funktioner.

Om du vill lägga till fler fall, se bara om du har liknande data till hands. Om du vill lägga till nya funktioner, leta reda på en öppen källkälla, om möjligt, för att matcha dina data med dess poster. Ett annat bra sätt att få både nya fall och nya funktioner är att skrapa data från webben. Ofta finns data tillgängliga mellan olika källor eller genom ett programmeringsgränssnitt (API). Google APIs erbjuder till exempel många geografiska och företagsinformationskällor.

10 Sätt att förbättra dina maskinlärningsmodeller - 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 ...