Förbättrad regression för beslutsträd

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.

Skapar en regressionsmodell med hjälp av algoritmen för förstärkt beslutsträd

Kategori: Machine Learning/initiera modell/regression

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

I den här artikeln beskrivs hur du använder modulen Boosted Decision Tree Regression i Machine Learning Studio (klassisk) för att skapa en ensemble med regressionsträd med hjälp av boostning. Att öka innebär att varje träd är beroende av tidigare träd. Algoritmen lär sig genom att passa in residualerna i de träd som föregår den. Därför tenderar att öka i en beslutsträds ensemble att förbättra noggrannheten med viss liten risk för mindre täckning.

Den här regressionsmetoden är en övervakad inlärningsmetod och kräver därför en etiketterad datamängd. Etikettkolumnen måste innehålla numeriska värden.

Anteckning

Använd endast den här modulen med datauppsättningar som använder numeriska variabler.

När du har definierat modellen tränar du den med hjälp av modulerna Train Model (Träna modell) eller Tune Model Hyperparameters (Justera modell).

Tips

Vill du veta mer om de träd som skapades? När modellen har tränats högerklickar du på utdata för modulen Train Model (Träna modell) (eller Tune Model Hyperparameters module) och väljer Visualize (Visualisera) för att se trädet som skapades vid varje iteration. Du kan öka detaljgranskningen i delningar för varje träd och se reglerna för varje nod.

Mer om förstärkta regressionsträd

Att öka är en av flera klassiska metoder för att skapa ensemblemodeller, tillsammans med bagging, slumpmässiga skogar och så vidare. I Machine Learning Studio (klassisk) använder förstärkta beslutsträd en effektiv implementering av algoritmen för MART-gradientökning. Gradient boost är en maskininlärningsteknik för regressionsproblem. Den bygger varje regressionsträd stegvis med hjälp av en fördefinierad förlustfunktion för att mäta felet i varje steg och korrigera för det i nästa steg. Därför är förutsägelsemodellen i själva verket en ensemble med svagare förutsägelsemodeller.

Vid regressionsproblem skapar en ökning en serie träd stegvis och väljer sedan det optimala trädet med hjälp av en godtycklig, differentiable förlustfunktion.

Mer information finns i följande artiklar:

Metoden gradient boost kan också användas för klassificeringsproblem genom att minska dem till regression med en lämplig förlustfunktion. Mer information om implementeringen av förstärkta träd för klassificeringsuppgifter finns i Tvåklass förstärkt beslutsträd.

Så här konfigurerar du boostad beslutsträds regression

  1. Lägg till modulen Boosted Decision Tree (Ökat beslutsträd) i experimentet. Du hittar den här modulen under Machine Learning, Initiera, under kategorin Regression.

  2. Ange hur du vill att modellen ska tränas genom att ange alternativet Skapa tränarläge .

    • Enskild parameter: Välj det här alternativet om du vet hur du vill konfigurera modellen och ange en specifik uppsättning värden som argument.

    • Parameterintervall: Välj det här alternativet om du inte är säker på de bästa parametrarna och vill köra en parametersökning. Välj ett värdeintervall att iterera över, så itererar Hyperparametrarna för finjusteringsmodell över alla möjliga kombinationer av de inställningar som du har angett för att fastställa de hyperparametrar som ger optimala resultat.

  3. Maximalt antal löv per träd: Ange det maximala antalet terminalnoder (löv) som kan skapas i alla träd.

    Genom att öka det här värdet kan du potentiellt öka trädets storlek och få bättre precision, med risk för överanpassad och längre träningstid.

  4. Minsta antal exempel per lövnod: Ange det minsta antal fall som krävs för att skapa en terminalnod (lövnod) i ett träd.

    Genom att öka det här värdet ökar du tröskelvärdet för att skapa nya regler. Med standardvärdet 1 kan till exempel även ett enskilt fall orsaka att en ny regel skapas. Om du ökar värdet till 5 måste träningsdata innehålla minst 5 fall som uppfyller samma villkor.

  5. Learning: Ange ett tal mellan 0 och 1 som definierar stegstorleken under inlärningen. Inlärningstakten avgör hur snabbt eller långsamt inlärningen konvergerar i den optimala lösningen. Om stegstorleken är för stor kan du få en bättre lösning. Om stegstorleken är för liten tar träningen längre tid att konvergera på den bästa lösningen.

  6. Antal träd som konstruerats: Ange det totala antalet beslutsträd som ska skapas i ensemblen. Genom att skapa fler beslutsträd kan du eventuellt få bättre täckning, men träningstiden ökar.

    Det här värdet styr även antalet träd som visas när den tränade modellen visualiseras. Om du vill se eller skriva ut ett ingle-träd kan du ange värdet till 1. Det innebär dock att endast ett träd skapas (trädet med den inledande uppsättningen parametrar) och inga ytterligare iterationer utförs.

  7. Slumptalsvärde: Ange ett valfritt icke-negativt heltal som ska användas som slumpmässigt startvärde. Om du anger ett seed kan du säkerställa reproducerbarhet mellan körningar som har samma data och parametrar.

    Som standard är det slumpmässiga startvärdet inställt på 0, vilket innebär att det ursprungliga startvärdet hämtas från systemklockan.

  8. Tillåt okända kategoriska nivåer: Välj det här alternativet om du vill skapa en grupp för okända värden i tränings- och valideringsuppsättningarna. Om du avmarkerar det här alternativet kan modellen bara acceptera de värden som finns i träningsdata. Modellen kan vara mindre exakt för kända värden, men den kan ge bättre förutsägelser för nya (okända) värden.

  9. Lägg till en datauppsättning för träning och en av träningsmodulerna:

    Anteckning

    Om du skickar ett parameterintervall till Träna modell används bara det första värdet i listan över parameterintervall.

    Om du skickar en enda uppsättning parametervärden till modulen Tune Model Hyperparameters ignoreras värdena när en uppsättning inställningar för varje parameter förväntas, och standardvärdena för eleven används.

    Om du väljer alternativet Parameterintervall och anger ett enda värde för en parameter används det enskilda värdet under hela genomsökningsintervallet, även om andra parametrar ändras över ett värdeintervall.

  10. Kör experimentet.

Resultat

När träningen är klar:

  • Om du vill se trädet som skapades på varje iteration högerklickar du på Modulen Träna modell och väljer Tränad modell att visualisera. Om du använder Hyperparametrar för justera modell högerklickar du på modulen och väljer Tränad bästa modell för att visualisera den bästa modellen.

    Klicka på varje träd för att öka detaljgranskningen av delningar och se reglerna för varje nod.

  • Om du vill använda modellen för bedömning ansluter du den till Poängmodell för att förutsäga värden för nya indataexempel.

  • Om du vill spara en ögonblicksbild av den tränade modellen högerklickar du på träningsmodulens utdata för tränad modell och väljer Spara som. Kopian av den tränade modell som du sparar uppdateras inte på efterföljande körningar av experimentet.

Exempel

Exempel på hur förstärkta träd används i maskininlärning finns i Azure AI Gallery:

  • Uppskattning av efterfrågan: Använder boostad regression av beslutsträd för att förutsäga antalet uthyrningar under en viss tid.

  • Twitter-attitydanalys: Använder regression för att generera ett förutsagt omdöme.

Teknisk information

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

Tips

I allmänhet ger beslutsträd bättre resultat när funktionerna är något relaterade. Om funktioner har en stor grad av enpati (det vill säga att de inte är relaterade) delar de lite eller ingen ömsesidig information och ordningen i ett träd ger inte mycket förutsägelse signifikans.

Implementeringsdetaljer

Ensemblen med träd produceras genom beräkning, i varje steg, ett regressionsträd som approximerar gradienten för förlustfunktionen och lägger till den i föregående träd med koefficienter som minimerar förlusten av det nya trädet. Utdata från ensemblen som produceras av MART på en viss instans är summan av trädutdata.

  • För problem med binär klassificering konverteras utdata till sannolikhet genom att använda någon form av kalibrering.

  • För regressionsproblem är utdata det förutsagda värdet för funktionen.

  • För rangordningsproblem sorteras instanserna efter utdatavärdet för ensemblen.

Modulparametrar

Name Intervall Typ Standardvärde Description
Maximalt antal löv per träd >= 1 Integer 20 Ange det maximala antalet löv per träd
Minsta antal exempel per lövnod >= 1 Integer 10 Ange det minsta antal ärenden som krävs för att skapa en lövnod
Inlärningstakt [double. Epsilon;1.0] Float 0,2 Ange den inledande inlärningstakten
Totalt antal träd som har konstruerats >= 1 Integer 100 Ange det maximala antalet träd som kan skapas under träningen
Startnummer för slumptal valfri Integer Ange ett startnummer för den slumptalsgenerator som används av modellen. Lämna tomt som standard.
Tillåt okända kategoriska nivåer valfri Boolesk true Om sant skapar du ytterligare en nivå för varje kategorisk kolumn. Nivåer i testdatamängden som inte är tillgängliga i träningsdatamängden mappas till den här ytterligare nivån.

Utdata

Namn Typ Description
Ej tränad modell ILearner-gränssnitt En tränad regressionsmodell

Se även

A-Z-modullista
Regression