Finjustera hyperparametrar för modell
Den här artikeln beskriver hur du använder komponenten Tune Model Hyperparameters i Azure Machine Learning Designer. Målet är att fastställa optimala hyperparametrar för en maskininlärningsmodell. Komponenten bygger och testar flera modeller med hjälp av olika kombinationer av inställningar. Den jämför mått över alla modeller för att få kombinationerna av inställningar.
Termparametern och hyperparametern kan vara förvirrande. Modellens parametrar är det du anger i komponentens högra fönster. I grund och botten utför den här komponenten en parameterrensning över de angivna parameterinställningarna. Den lär sig en optimal uppsättning hyperparametrar, som kan vara olika för varje specifikt beslutsträd, datauppsättning eller regressionsmetod. Processen att hitta den optimala konfigurationen kallas ibland för justering.
Komponenten stöder följande metod för att hitta optimala inställningar för en modell: integrerat tåg och justering. I den här metoden konfigurerar du en uppsättning parametrar som ska användas. Sedan kan komponenten iterera över flera kombinationer. Komponenten mäter noggrannheten tills den hittar en "bästa" modell. Med de flesta elevkomponenter kan du välja vilka parametrar som ska ändras under träningsprocessen och vilka som ska vara fasta.
Beroende på hur länge du vill att justeringsprocessen ska köras kan du välja att fullständigt testa alla kombinationer. Eller så kan du förkorta processen genom att upprätta ett rutnät med parameterkombinationer och testa en slumpmässig delmängd av parameterrutnätet.
Den här metoden genererar en tränad modell som du kan spara för återanvändning.
Dricks
Du kan utföra en relaterad uppgift. Innan du börjar justera bör du använda funktionsval för att fastställa de kolumner eller variabler som har det högsta informationsvärdet.
Så här konfigurerar du Tune Model Hyperparameters
Att lära sig optimala hyperparametrar för en maskininlärningsmodell kräver stor användning av pipelines.
Träna en modell med hjälp av en parametersvepning
I det här avsnittet beskrivs hur du utför en grundläggande parametersvepning, som tränar en modell med hjälp av komponenten Tune Model Hyperparameters.
Lägg till komponenten Tune Model Hyperparameters i din pipeline i designern.
Anslut en otränad modell till indata längst till vänster.
Kommentar
Tune Model Hyperparameters kan bara anslutas till inbyggda maskininlärningsalgoritmkomponenter och kan inte stödja anpassad modell som är inbyggd i Skapa Python-modell.
Lägg till den datauppsättning som du vill använda för träning och anslut den till de mellersta indata för Tune Model Hyperparameters.
Om du har en taggad datauppsättning kan du också ansluta den till den högra indataporten (Valfri valideringsdatauppsättning). På så sätt kan du mäta noggrannhet vid träning och justering.
I den högra panelen i Tune Model Hyperparameters väljer du ett värde för Parameter sotningsläge. Det här alternativet styr hur parametrarna väljs.
Hela rutnätet: När du väljer det här alternativet loopar komponenten över ett rutnät som är fördefinierat av systemet för att prova olika kombinationer och identifiera den bästa eleven. Det här alternativet är användbart när du inte vet vilka de bästa parameterinställningarna kan vara och vill prova alla möjliga kombinationer av värden.
Slumpmässigt svep: När du väljer det här alternativet väljer komponenten slumpmässigt parametervärden över ett systemdefinierat intervall. Du måste ange det maximala antalet körningar som du vill att komponenten ska köra. Det här alternativet är användbart när du vill öka modellprestandan med hjälp av de mått som du väljer, men ändå spara på databehandlingsresurser.
För Kolumnen Etikett öppnar du kolumnväljaren för att välja en enskild etikettkolumn.
Välj antalet körningar:
- Maximalt antal körningar vid slumpmässigt svep: Om du väljer ett slumpmässigt svep kan du ange hur många gånger modellen ska tränas med hjälp av en slumpmässig kombination av parametervärden.
För Rangordning väljer du ett enda mått som ska användas för att rangordna modellerna.
När du kör ett parametersvepning beräknar komponenten alla tillämpliga mått för modelltypen och returnerar dem i rapporten Svepresultat . Komponenten använder separata mått för regressions- och klassificeringsmodeller.
Det mått som du väljer avgör dock hur modellerna rangordnas. Endast den översta modellen, som rangordnas efter det valda måttet, är utdata som en tränad modell som ska användas för bedömning.
För Slumptal anger du ett heltalsnummer som ett pseudo-slumptalsgeneratortillstånd som används för att slumpmässigt välja parametervärden över ett fördefinierat intervall. Den här parametern är endast effektiv om parametersvepningsläget är Slumpmässigt svep.
Skicka pipelinen.
Resultat av justering av hyperparameter
När träningen är klar:
Om du vill visa svepresultatet kan du antingen högerklicka på komponenten och sedan välja Visualisera eller högerklicka på den vänstra utdataporten för komponenten för att visualisera.
Sweep-resultaten innehåller alla mått för parametersvepning och noggrannhet som gäller för modelltypen, och det mått som du har valt för rangordning avgör vilken modell som anses vara "bäst".
Om du vill spara en ögonblicksbild av den tränade modellen väljer du fliken Utdata+loggar i den högra panelen i komponenten Träna modell . Välj ikonen Registrera datauppsättning för att spara modellen som en återanvändbar komponent.
Tekniska anteckningar
Det här avsnittet innehåller implementeringsinformation och tips.
Så här fungerar en parametersvepning
När du konfigurerar ett parametersvepning definierar du sökomfånget. Sökningen kan använda ett begränsat antal parametrar som valts slumpmässigt. Eller så kan det vara en fullständig sökning över ett parameterutrymme som du definierar.
Slumpmässig svepning: Det här alternativet tränar en modell med hjälp av ett visst antal iterationer.
Du anger ett intervall med värden som ska iterera över, och komponenten använder en slumpmässigt vald delmängd av dessa värden. Värden väljs med ersättning, vilket innebär att tal som tidigare valts slumpmässigt inte tas bort från poolen med tillgängliga tal. Så chansen att valfritt värde väljs förblir densamma för alla pass.
Hela rutnätet: Alternativet att använda hela rutnätet innebär att varje kombination testas. Det här alternativet är det mest noggranna, men det kräver mest tid.
Kontrollera längden och komplexiteten i träningen
Iterering över många kombinationer av inställningar kan vara tidskrävande, så komponenten ger flera sätt att begränsa processen:
- Begränsa antalet iterationer som används för att testa en modell.
- Begränsa parameterutrymmet.
- Begränsa både antalet iterationer och parameterutrymmet.
Vi rekommenderar att du pipeline med inställningarna för att fastställa den mest effektiva träningsmetoden för en viss datauppsättning och modell.
Välja ett utvärderingsmått
I slutet av testningen visar modellen en rapport som innehåller noggrannheten för varje modell så att du kan granska måttresultaten:
- En enhetlig uppsättning mått används för alla binära klassificeringsmodeller.
- Noggrannhet används för alla klassificeringsmodeller med flera klasser.
- En annan uppsättning mått används för regressionsmodeller.
Under träningen måste du dock välja ett enda mått som ska användas för att rangordna de modeller som genereras under justeringsprocessen. Du kanske upptäcker att det bästa måttet varierar beroende på ditt affärsproblem och kostnaden för falska positiva och falska negativa identifieringar.
Mått som används för binär klassificering
Noggrannhet är andelen sanna resultat till totalt antal fall.
Precision är andelen sanna resultat till positiva resultat.
Recall är bråkdelen av alla korrekta resultat för alla resultat.
F-poäng är ett mått som balanserar precision och träffsäkerhet.
AUC är ett värde som representerar området under kurvan när falska positiva identifieringar ritas på x-axeln och sanna positiva värden ritas på y-axeln.
Genomsnittlig loggförlust är skillnaden mellan två sannolikhetsfördelningar: den sanna och den i modellen.
Mått som används för regression
Genomsnittligt absolut fel medelvärder alla fel i modellen, där felet innebär avståndet för det förutsagda värdet från det sanna värdet. Det förkortas ofta som MAE.
Roten av det genomsnittliga kvadratfelet mäter medelvärdet av kvadraterna för felen och tar sedan roten för det värdet. Det förkortas ofta som RMSE.
Relativt absolut fel representerar felet som en procentandel av det sanna värdet.
Relativt kvadratfel normaliserar det totala kvadratfelet genom att dividera med det totala kvadratfelet för de förutsagda värdena.
Bestämningskoefficient är ett enda tal som anger hur väl data passar en modell. Ett värde på ett innebär att modellen exakt matchar data. Värdet noll innebär att data är slumpmässiga eller på annat sätt inte passar modellen. Den kallas ofta r2, R2 eller r-kvadrat.
Komponenter som inte stöder en parametersvepning
Nästan alla elever i Azure Machine Learning stöder korsvalidering med en integrerad parametersvepning, som gör att du kan välja de parametrar som ska pipelines med. Om eleven inte har stöd för att ange ett värdeintervall kan du fortfarande använda det i korsvalidering. I det här fallet väljs ett intervall med tillåtna värden för svepet.
Nästa steg
Se den uppsättning komponenter som är tillgängliga för Azure Machine Learning.