Finjustera hyperparametrar för modell

Viktigt

Stödet för Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du byter till Azure Machine Learning innan dess.

Från och med den 1 december 2021 kan du inte längre skapa nya Machine Learning Studio-resurser (klassisk). Du kan fortsätta att använda befintliga Machine Learning Studio-resurser (klassisk) till och med den 31 augusti 2024.

Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.

Utför en parametersökning på en modell för att fastställa optimala parameterinställningar

Kategori: Machine Learning/träna

Anteckning

Gäller endast för: Machine Learning Studio (klassisk)

Liknande dra och släpp-moduler är tillgängliga i Azure Machine Learning designer.

Modulöversikt

Den här artikeln beskriver hur du använder modulen Tune Model Hyperparameters i Machine Learning Studio (klassisk) för att fastställa optimala hyperparametrar för en viss maskininlärningsmodell. Modulen bygger och testar flera modeller med olika kombinationer av inställningar och jämför mått över alla modeller för att få en kombination av inställningar.

Termerna parameter ochhyperparameter kan vara förvirrande. Modellens parametrar är det du anger i egenskapsfönstret. I princip utför den här modulen en parametersökning över de angivna parameterinställningarna och 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 justering.

Modulen stöder två metoder för att hitta optimala inställningar för en modell:

  • Integrerad träna och finjustera: Du konfigurerar en uppsättning parametrar som ska användas och låter sedan modulen iterera över flera kombinationer och mäta noggrannhet tills den hittar en "bästa"-modell. Med de flesta utbildningsmoduler 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 testa alla kombinationer utförligt, 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.

  • Korsvalidering med justering: Med det här alternativet delar du upp dina data i ett antal gånger och skapar och testar sedan modeller på varje vikning. Den här metoden ger bästa möjliga noggrannhet och kan hjälpa dig att hitta problem med datauppsättningen. det tar dock längre tid att träna.

Båda metoderna genererar en tränad modell som du kan spara för återanvändning.

  • Om du skapar en klustringsmodell använder du Rensa klustring för att automatiskt fastställa det optimala antalet kluster och andra parametrar.

  • Innan du finjusterar tillämpar du funktionsval för att fastställa de kolumner eller variabler som har det högsta informationsvärdet. Mer information finns i Funktionsval.

Så här konfigurerar du Hyperparametrar för finjusteringsmodell

I allmänhet kräver inlärning av de optimala hyperparametrarna för en viss maskininlärningsmodell betydande experimentering. Den här modulen stöder både den inledande justeringsprocessen och korsvalidering för att testa modellens precision:

Träna en modell med en parametersökning

I det här avsnittet beskrivs hur du utför en grundläggande parametersökning, som tränar en modell med hjälp av modulen Justera modellens hyperparametrar .

  1. Lägg till modulen Tune Model Hyperparameters (Justera modellens hyperparametrar ) i experimentet i Studio (klassisk).

  2. Anslut en tränad modell (en modell i iLearner-format) till indata längst till vänster.

  3. Ställ in alternativet Skapa träningslägeParameterintervall och använd Range Builder för att ange ett intervall med värden som ska användas i parametersökning.

    Nästan alla moduler för klassificeringoch regression stöder en integrerad parametersökning. För de elever som inte har stöd för att konfigurera ett parameterintervall kan endast de tillgängliga parametervärdena testas.

    Du kan ange värdet för en eller flera parametrar manuellt och sedan rensa över de återstående parametrarna. Detta kan spara lite tid.

  4. Lägg till den datauppsättning som du vill använda för träning och anslut den till mittindata för Hyperparametrar för justera modell.

    Om du har en taggad datauppsättning kan du också ansluta den till den högra indataporten (valfri datauppsättning för validering). På så sätt kan du mäta noggrannhet vid träning och justering.

  5. I fönstret Egenskaper i Finjustera hyperparametrar för modell väljer du ett värde för parameterens avsökningsläge. Det här alternativet styr hur parametrarna väljs.

    • Hela rutnätet: När du väljer det här alternativet loopar modulen ö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 i fall där du inte vet vilka de bästa parameterinställningarna kan vara och vill prova alla möjliga kombinationer av värden.

    Du kan också minska storleken på rutnätet och köra en slumpmässig rutnätssökning . Forskning har visat att den här metoden ger samma resultat, men är mer effektiv beräkningsmässigt.

    • Slumpmässig sökning: När du väljer det här alternativet väljer modulen parametervärden slumpmässigt över ett systemdefinierat intervall. Du måste ange det maximala antalet körningar som du vill att modulen ska köra. Det här alternativet är användbart för fall där du vill öka modellens prestanda med valfria mått, men ändå spara på beräkningsresurser.
  6. För Kolumnen Etikett startar du kolumnväljaren för att välja en enskild etikettkolumn.

  7. Välj ett enda mått som ska användas när du rangordnar modellerna.

    När du kör en parametersökning beräknas alla tillämpliga mått för modelltypen och returneras i rapporten Rensa resultat. Separata mått används för regressions- och klassificeringsmodeller.

    Det mått som du väljer avgör dock hur modellerna rangordnas. Endast den översta modellen, rangordnad efter det valda måttet, är utdata som en tränad modell att använda för bedömning.

  8. För Slumpmässigt startvärde anger du ett tal som ska användas vid initiering av parameterseparering.

    Om du tränar en modell som stöder en integrerad parametersökning kan du även ange ett intervall med startvärden som ska användas och iterera över de slumpmässiga urvalen. Detta kan vara användbart för att undvika bias som introduceras av seed-urval.

  9. Kör experimentet.

Resultat av justering av hyperparametrar

När träningen är klar:

  • Om du vill visa en uppsättning noggrannhetsmått för den bästa modellen högerklickar du på modulen, väljer Rensa resultat och väljer sedan Visualisera.

    Alla noggrannhetsmått som gäller för modelltypen är utdata, men det mått som du valde för rangordning avgör vilken modell som anses vara "bäst". Mått genereras endast för den topprankade modellen.

  • Om du vill visa de inställningar som härletts för den "bästa" modellen högerklickar du på modulen, väljer Tränad bästa modell och klickar sedan på Visualisera. Rapporten innehåller parameterinställningar och funktionsvikter för indatakolumnerna.

  • Om du vill använda modellen för bedömning i andra experiment, utan att behöva upprepa justeringsprocessen, högerklickar du på modellens utdata och väljer Spara som tränad modell.

Utföra korsvalidering med en parametersökning

I det här avsnittet beskrivs hur du kombinerar en parametersökning med korsvalidering. Den här processen tar längre tid, men du kan ange antalet gånger och du får den maximala mängden information om din datauppsättning och möjliga modeller.

  1. Lägg till modulen Partition och Sample i experimentet och anslut träningsdata.

  2. Välj alternativet Assign to Folds (Tilldela till gånger) och ange ett antal gånger som data ska delas upp i. Om du inte anger något tal används som standard 10 gånger. Rader fördelas slumpmässigt i dessa vikningar, utan ersättning.

  3. Om du vill balansera samplingen på en viss kolumn anger du den Stratifierade uppdelningen till TRUE och väljer sedan strata-kolumnen. Om du till exempel har en obalanserad datauppsättning kanske du vill dela upp datauppsättningen så att varje viker får samma antal fall av förfallomål.

  4. Lägg till modulen Tune Model Hyperparameters (Justera hyperparametrar för modell) i experimentet.

  5. Anslut en av maskininlärningsmodulerna i den här kategorin till vänster indata för Hyperparametrar för justera modell.

  6. I fönstret Egenskaper för eleven anger du alternativet Skapa träningsläge till Parameterintervall och använder Range Builder för att ange ett intervall med värden som ska användas i parametersvep.

    Du behöver inte ange ett intervall för alla värden. Du kan ange värdet för vissa parametrar manuellt och sedan rensa över de återstående parametrarna. Detta kan spara lite tid.

    En lista över elever som inte stöder det här alternativet finns i avsnittet Tekniska anteckningar.

  7. Anslut utdata från Partition och Sample till den märkta träningsdatauppsättningens indata för Hyperparametrar för justera modell.

  8. Om du vill kan du ansluta en valideringsdatauppsättning till indata för Hyperparametrar för tune-modellen längst till höger. För korsvalidering behöver du bara en datauppsättning för träning.

  9. I fönstret Egenskaper i Hyperparametrar för justera modell anger du om du vill utföra en slumpmässig genomsökning eller en rutnätssökning. En rutnätssökning är omfattande, men mer tidskrävande. En slumpmässig parametersökning kan få bra resultat utan att ta så lång tid.

    Maximalt antal körningar vid slumpmässig sökning: Om du väljer en slumpmässig genomsökning kan du ange hur många gånger modellen ska tränas med hjälp av en slumpmässig kombination av parametervärden.

    Maximalt antal körningar i slumpmässigt rutnät: Det här alternativet styr även antalet iterationer över en slumpmässig sampling av parametervärden, men värdena genereras inte slumpmässigt från det angivna intervallet. I stället skapas en matris med alla möjliga kombinationer av parametervärden och en slumpmässig sampling tas över matrisen. Den här metoden är mer effektiv och mindre känslig för regional överstämpel eller undersampling.

    Tips

    En mer detaljerad diskussion om dessa alternativ finns i avsnittet Tekniska anteckningar.

  10. Välj en enskild etikettkolumn.

  11. Välj ett enda mått som ska användas för att rangordna modellen. Många mått beräknas, så välj den viktigaste som ska användas för att ordna resultaten.

  12. För Slumpmässigt startvärde anger du ett tal som ska användas vid initiering av parameterseparering.

    Om du tränar en modell som stöder en integrerad parametersökning kan du även ange ett intervall med startvärden som ska användas och iterera över de slumpmässiga urvalen. Detta är valfritt, men kan vara användbart för att undvika bias som introduceras av seed-urval.

  13. Lägg till modulen Kors validera modell . Anslut utdata från Partition och Sample till datauppsättningens indata och anslut utdata för Hyperparametrar för justera modell till Indata för ej tränad modell.

  14. Kör experimentet.

Resultat av korsvalidering

När korsvalidering är klar:

  • Om du vill visa utvärderingsresultaten högerklickar du på modulen, väljer Utvärderingsresultat efter vikning och väljer sedan Visualisera.

    Noggrannhetsmåtten beräknas från korsvalideringspasset och kan variera något beroende på hur många gånger du har valt.

  • Om du vill se hur datauppsättningen har delats och hur den "bästa" modellen skulle poängdöma varje rad i datauppsättningen högerklickar du på modulen, väljer Poängade resultat och väljer sedan Visualisera.

  • Om du sparar den här datauppsättningen för senare användning bevaras tilldelningarna. Den sparade datsaet kan till exempel se ut så här:

    Fold-tilldelningar Klass Age(1:a funktionskolumnen)
    2 0 35
    1 1 17
    3 0 62
  • Om du vill hämta parameterinställningarna för den "bästa" modellen högerklickar du på Tune Model Hyperparameters (Finjustera modellens hyperparametrar)

Exempel

Exempel på hur den här modulen används finns i Azure AI Gallery:

  • Förutsägelse av elevprestanda: Använder algoritmen för tvåklassiga förstärkta beslutsträd med olika parametrar för att generera en modell med bästa möjliga RMSE (Root Mean Square Error).

  • Learning antal: Binär klassificering: Genererar en kompakt uppsättning funktioner med hjälp av count-based learning och tillämpar sedan en parametersökning för att hitta de bästa modellparametrarna.

  • Binär klassificering: Identifiering av nätverksintrång: Använder Hyperparametrar för finjusteringsmodell i korsvalideringsläge, med en anpassad uppdelning i fem gånger, för att hitta de bästa hyperparametrarna för en logistisk regressionsmodell med två klasser.

Teknisk information

Det här avsnittet innehåller implementeringsinformation, tips och svar på vanliga frågor.

Så här fungerar en parametersökning

I det här avsnittet beskrivs hur parametersökning fungerar i allmänhet och hur alternativen i den här modulen interagerar.

När du ställer in en parametersökning definierar du sökomfånget, för att använda antingen ett begränsat antal parametrar som valts slumpmässigt eller en fullständig sökning över ett parameterutrymme som du definierar.

  • Slumpmässig sökning: Det här alternativet tränar en modell med ett visst antal iterationer.

    Du anger ett intervall med värden för att iterera över, och modulen 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. Därmed är risken för att ett värde väljs densamma för alla pass.

  • Rutnätssökning: Det här alternativet skapar en matris, eller ett rutnät, som innehåller varje kombination av parametrarna i det värdeintervall som du anger. När du börjar justera med den här modulen tränas flera modeller med hjälp av kombinationer av dessa parametrar.

  • Hela rutnätet: Alternativet att använda hela rutnätet innebär just det: varje kombination testas. Det här alternativet kan anses vara det mest omfattande, men det kräver mest tid.

  • Slumpmässigt rutnät: Om du väljer det här alternativet beräknas matrisen för alla kombinationer och värden samplas från matrisen över det antal iterationer som du har angett.

    Den senaste forskningen har visat att slumpmässiga svepningar kan prestera bättre än rutnätssvepar.

Kontrollera längd och komplexitet för träning

Iterering över många kombinationer av inställningar kan vara tidskrävande, så modulen innehå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 experimenterar 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

En rapport som innehåller noggrannheten för varje modell visas i slutet så att du kan granska måttresultatet. En enhetlig uppsättning mått används för alla klassificeringsmodeller och 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 resultat.

Mer information finns i Så här utvärderar du modellprestanda i Machine Learning

Mått som används för klassificering

  • Noggrannhet Andelen sanna resultat till totalt antal fall.

  • Precision Andelen sanna resultat till positiva resultat.

  • Minns Bråkdelen av alla korrekta resultat för alla resultat.

  • F-poäng Ett mått som balanserar precision och träffsäkerhet.

  • AUC Ett värde som representerar området under kurvan när falska positiva resultat ritas på x-axeln och sanna positiva resultat ritas på y-axeln.

  • Genomsnittlig loggförlust Skillnaden mellan två sannolikhetsfördelningar: den sanna och den i modellen.

  • Förlust av tränad logg Förbättringen som tillhandahålls av modellen över en slumpmässig förutsägelse.

Mått som används för regression

  • Absolut medelfel Medelvärden för alla fel i modellen, där felet innebär avståndet för det förutsagda värdet från det sanna värdet. Förkortas ofta MAE.

  • Roten på mean squared-fel Mäter medelvärdet av kvadraterna av felen och tar sedan roten av det värdet. Förkortas ofta 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 Ett tal som anger hur väl data passar en modell. Värdet 1 innebär att modellen exakt matchar data. värdet 0 innebär att data är slumpmässiga eller på annat sätt inte passar modellen. Kallas ofta r2, R2 eller r-kvadrat.

Moduler som inte stöder en parametersökning

Nästan alla elever i Machine Learning stöd för korsvalidering med en integrerad parametersökning, vilket gör att du kan välja de parametrar som du vill experimentera 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 vissa intervall med tillåtna värden för avsökning.

Följande elever har inte stöd för att ange ett intervall med värden som ska användas i en parametersökning:

Förväntade indata

Namn Typ Description
Ej tränad modell ILearner-gränssnitt Ej tränad modell för parametersökning
Datauppsättning för träning Datatabell Indatauppsättning för träning
Valideringsdatauppsättning Datatabell Indatauppsättning för validering (för valideringsläge för träning/testning). Dessa indata är valfria.

Modulparametrar

Name Intervall Typ Standardvärde Description
Ange parametersökningsläge Lista Sökningsmetoder Slumpmässigt svep Rensa hela rutnätet på parameterutrymmet eller rensa med ett begränsat antal exempelkörningar
Maximalt antal körningar vid slumpmässig sökning [1;10000] Integer 5 Köra maximalt antal körningar med slumpmässig sökning
Slumpmässigt start seed valfri Integer 0 Ange ett värde för att seeda slumptalsgeneratorn
Etikettkolumn valfri ColumnSelection Etikettkolumn
Mått för att mäta prestanda för klassificering Lista Måtttyp för binär klassificering Noggrannhet Välj det mått som används för utvärdering av klassificeringsmodeller
Mått för att mäta prestanda för regression Lista RegressionMetric Type Medelsen absoluta fel Välj det mått som används för att utvärdera regressionsmodeller

Utdata

Namn Typ Description
Rensa resultat Datatabell Resultatmått för parametersökningskörningar
Tränad bästa modell ILearner-gränssnitt Modell med bästa prestanda för träningsdatamängden

Se även

A-Z-modullista
Träna
Korsre validera modell