Tvåklassigt förbättrat 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 binär klassificerare med hjälp av en förstärkt beslutsträdsalgoritm

Kategori: Machine Learning/initiera modell/klassificering

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 Tvåklassiga förstärkt beslutsträd i Machine Learning Studio (klassisk) för att skapa en maskininlärningsmodell som baseras på algoritmen för förstärkta beslutsträd.

Ett förstärkt beslutsträd är en ensembleinlärningsmetod där det andra trädet korrigerar felen i det första trädet, det tredje trädet korrigerar felen i det första och det andra trädet och så vidare. Förutsägelser baseras på hela ensemblen med träd som tillsammans gör förutsägelsen. Mer teknisk information finns i avsnittet Om forskning i den här artikeln.

När de är korrekt konfigurerade är vanligtvis förstärkta beslutsträd de enklaste metoderna för att få bästa möjliga prestanda på en mängd olika maskininlärningsuppgifter. De är dock också en av de mer minnesintensiva eleverna, och den aktuella implementeringen innehåller allt i minnet. Därför kanske en förstärkt beslutsträdsmodell inte kan bearbeta de mycket stora datamängder som vissa linjära elever kan hantera.

Så här konfigurerar Two-Class ett förstärkt beslutsträd

Den här modulen skapar en otränad klassificeringsmodell. Eftersom klassificering är en metod för övervakad inlärning behöver du för att träna modellen en taggad datauppsättning som innehåller en etikettkolumn med ett värde för alla rader.

Du kan träna den här typen av modell med hjälp av modulerna Träna modell eller Justera modell hyperparametrar .

  1. I Machine Learning Studio (klassisk) lägger du till modulen Boosted Decision Tree i experimentet.

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

    • Enskild parameter: Om du vet hur du vill konfigurera modellen kan du ange en specifik uppsättning värden som argument.

    • Parameterintervall: Om du inte är säker på de bästa parametrarna kan du hitta de optimala parametrarna med hjälp av modulen Finjustera modellens hyperparametrar . Du anger ett visst värdeintervall så itererar utbildaren över flera kombinationer av inställningarna för att fastställa vilken kombination av värden som ger bäst resultat.

  3. För Maximalt antal löv per träd anger du det maximala antalet terminalnoder (löv) som kan skapas i ett 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. För Minsta antal exempel per lövnod anger du antalet 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 göra 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. För Learning anger du ett tal mellan 0 och 1 som definierar stegstorleken under inlärningen.

    Inlärningstakten avgör hur snabbt eller långsamt inlärningen konvergerar på den optimala lösningen. Om steget är för stort kan du få en bättre lösning. Om stegstorleken är för liten tar träningen längre tid att konvergera med den bästa lösningen.

  6. För Antal träd som konstruerats anger du 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 enskilt träd anger du värdet till 1. Men när du gör det skapas bara ett träd (trädet med den inledande uppsättningen parametrar) och inga ytterligare iterationer utförs.

  7. För Startvärde för slumptal kan du välja att ange ett icke-negativt heltal som ska användas som slumpmässigt startvärde. Genom att ange ett seed kan du säkerställa reproducerbarhet mellan körningar som har samma data och parametrar.

    Det slumpmässiga startvärdet anges som standard till 0, vilket innebär att det ursprungliga startvärdet hämtas från systemklockan. Efterföljande körningar med ett slumpmässigt startresultat kan ha olika resultat.

  8. Välj alternativet Tillåt okända kategoriska nivåer för att 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.

    Om du tillåter okända värden kan modellen vara mindre exakt för kända värden, men kan förmodligen ge bättre förutsägelser för nya (okända) värden.

  9. Träna modellen.

    • Om du ställer in läget Skapa utbildareEnkel parameter ansluter du en taggad datauppsättning och modulen Träna modell.

    • Om du ställer in läget Skapa utbildarepå Parameterintervall ansluter du en taggad datauppsättning och tränar modellen med hjälp av Hyperparametrar för finjustera modell.

    Anteckning

    Om du skickar ett parameterintervall till Train Model (Träna modell) används bara det första värdet i listan med parameterintervall.

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

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

Resultat

När träningen är klar:

  • Om du vill se trädet som skapades för 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 i 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.

Exempel

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

  • Direkt marknadsföring: Använder algoritmen tvåklassig förstärkt beslutsträd för att förutsäga kundernas appetency.

  • Förutsägelse av flygförsening: Det här exemplet använder algoritmen för tvåklassfördröjningsträd för att avgöra om en flygresa sannolikt kommer att fördröjas.

  • Kreditkortsrisk: Det här exemplet använder algoritmen för tvåklass förstärkt beslutsträd för att förutsäga risker.

Teknisk information

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

Användningstips

  • Om du vill träna en modell med ökat beslutsträd måste du ange flera datainstanser. Ett fel genereras under träningsprocessen om datauppsättningen innehåller för få rader.

  • Om dina data saknar värden måste du lägga till indikatorer för funktionerna.

  • I allmänhet ger förstärkta beslutsträd bättre resultat när funktionerna är något relaterade. Om funktioner har en stor grad av entropi (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. Om så inte är fallet kan du prova en modell med slumpmässiga skogar.

    Att öka fungerar också bra när du har många fler exempel än funktioner eftersom modellen är känslig för överanpassande.

  • Normalisera inte datauppsättningen. Eftersom behandlingen av funktioner är en enkel, icke-parametrisk, mindre än eller större jämförelse kan normalisering eller någon form av icke-monoton transformeringsfunktion ha liten effekt.

  • Funktioner är diskretiserade och grupperade före träningen, så endast en relativt liten uppsättning tröskelvärdeskandidater övervägs, även för kontinuerliga funktioner.

Implementeringsdetaljer

Detaljerad information om den förstärkta beslutsträdsalgoritmen finns i Greedy Function Approximation: A Gradient Boost Machines (Greedy Function Approximation: A Gradient Boost Machines).

Den förstärkta beslutsträdsalgoritmen i Machine Learning använder följande ökningsmetod:

  1. Börja med en tom ensemble med svaga elever.

  2. För varje träningsexempel hämtar du aktuella utdata från ensemblen. Det här är summan av utdata för alla svaga elever i ensemblen.

  3. Beräkna toningen för förlustfunktionen för varje exempel.

    Detta beror på om uppgiften är ett binärt klassificeringsproblem eller ett regressionsproblem.

    • I en binär klassificeringsmodell används loggförlust, ungefär som i logistisk regression.

    • I en regressionsmodell används kvadratförlusten och toningen är aktuella utdata minus målet).

  4. Använd exemplen för att passa en svag elever med hjälp av toningen som definierats som målfunktion.

  5. Lägg till den svaga inlärningen i ensemblen med en styrka som anges av inlärningstakten och gå till steg 2 om du vill.

    I den här implementeringen är de svaga eleverna regressionsträden med minsta kvadrat, baserat på de toningar som beräknas i steg 3. Träd omfattas av följande begränsningar:

    • De tränas upp till ett maximalt antal löv.

    • Varje löv har ett minsta antal exempel för att skydda mot överanpassad.

    • Varje beslutsnod är en enskild funktion som jämförs med ett visst tröskelvärde. Om den funktionen är mindre än eller lika med tröskelvärdet går den nedåt en väg, och om den är större än tröskelvärdet går den nedåt på den andra vägen.

    • Varje lövnod är ett konstant värde.

  6. Trädskapande algoritmen väljer greedily funktionen och tröskelvärdet för vilka en delning minimerar kvadratförlusten med avseende på toningen som beräknas i steg 3. Valet av uppdelningen omfattas av ett minsta antal träningsexempel per löv.

    Algoritmen delar upp upprepade gånger tills den når det maximala antalet löv eller tills ingen giltig delning är tillgänglig.

Modulparametrar

Name Intervall Typ Standardvärde Description
Maximalt antal löv per träd >= 1 Integer 20 Ange det maximala antalet löv som tillåts 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
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 värde för att seeda slumptalsgeneratorn som används av modellen. Lämna det tomt som standard.
Tillåt okända kategoriska nivåer Valfri Boolesk Sant Om det är Sant skapas ytterligare en nivå för varje kategorisk kolumn. Alla 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 otränad binär klassificeringsmodell

Se även

Klassificering
Förbättrad regression för beslutsträd
A-Z-modullista