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 skapar 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å kombinationer av inställningar.

Termerna parameter och hyperparameter 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 för 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. Du kan sedan låta 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 randomiserad delmängd av parameterrutnätet.

Den här metoden genererar en tränad modell som du kan spara för återanvändning.

Tips

Du kan utföra en relaterad uppgift. Innan du börjar justera ska du använda funktionsval för att fastställa vilka 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

Det här avsnittet beskriver hur du utför en grundläggande parametersvepning, som tränar en modell med hjälp av komponenten Tune Model Hyperparameters.

  1. Lägg till komponenten Tune Model Hyperparameters i din pipeline i designern.

  2. Anslut en otränad modell till indata längst till vänster.

    Anteckning

    Tune Model Hyperparameters kan bara anslutas till inbyggda maskininlärningsalgoritmkomponenter och kan inte stödja anpassad modell som är inbyggd i Skapa Python-modell.

  3. 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 noggrannheten vid träning och justering.

  4. I den högra panelen i Tune Model Hyperparameters väljer du ett värde för Parameter-sveplä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 modellens prestanda med hjälp av de mått som du väljer men ändå sparar databehandlingsresurser.

  5. För Kolumnen Etikett öppnar du kolumnväljaren för att välja en enskild etikettkolumn.

  6. 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.
  7. För Rangordning väljer du ett enda mått som ska användas för att rangordna modellerna.

    När du kör en parametersvepning beräknar komponenten alla tillämpliga mått för modelltypen och returnerar dem i rapporten Rensa resultat . 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.

  8. 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 bara effektiv om parameterrensningsläget är Slumpmässigt svep.

  9. 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 på 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 en parameterrensning 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 angivet antal iterationer.

    Du anger ett intervall med värden att 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 utbildningens längd och komplexitet

Iterering över många kombinationer av inställningar kan vara tidskrävande, så komponenten tillhandahåller 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 pipelines 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 presenterar 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 i 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 kan upptäcka 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 i de totala fallen.

  • Precision är andelen sanna resultat till positiva resultat.

  • Träffsäkerhet är bråkdelen av alla korrekta resultat över 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 för 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ämningskoefficienten är ett enskilt 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 inte kan passa modellen. Det kallas ofta r2, R2 eller r-squared.

Komponenter som inte stöder en parameterrensning

Nästan alla elever i Azure Machine Learning har stöd för korsvalidering med en integrerad parameterrensning, där du kan välja de parametrar som du vill pipeline med. Om användaren 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.