Fast Forest Quantile Regression

Skapar en quantile regression-modell

Kategori: Machine Learning/initiera modell/regression

Anteckning

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

Det här innehållet gäller endast Studio (klassisk). Liknande dra-och släpp moduler har lagts till i Azure Machine Learning designer. Mer information i den här artikeln är att jämföra de två versionerna.

Översikt över modul

Den här artikeln beskriver hur du använder den snabba Quantile regression -modulen i Azure Machine Learning Studio (klassisk) för att skapa en Regressions modell som kan förutsäga värden för ett angivet antal quantiles.

Quantile regression är användbart om du vill veta mer om distributionen av det förväntade värdet i stället för att få ett enda genomsnitts förutsägelse värde. Den här metoden har många program, inklusive:

  • Förutsäga priser

  • Uppskatta student prestanda eller använda tillväxt diagram för att utvärdera den underordnade utvecklingen

  • Identifiera förutsägelse relationer i fall där det bara finns en svag relation mellan variabler

Den här Regressions algoritmen är en övervakad inlärnings metod, vilket innebär att den kräver en taggad data uppsättning som innehåller en etikett kolumn. Eftersom det är en Regressions algoritm får inte etikett kolumnen innehålla numeriska värden.

Mer om quantile regression

Det finns många olika typer av regression. I den mest grundläggande meningen innebär regression att du kan anpassa en modell till ett mål, uttryckt som en numerisk Vector. Statistiker har dock utvecklat alltmer avancerade metoder för regression.

Den enklaste definitionen av quantile är ett värde som delar upp en uppsättning data i grupper med samma storlek. Därför markerar quantile-värdena gränserna mellan grupper. Quantiles är värden som tas med jämna mellanrum från inversen av den kumulativa fördelnings funktionen (CDF) i en slumpmässig variabel.

Med linjära Regressions modeller görs ett försök att förutsäga värdet för en numerisk variabel med en enda uppskattning, vilket innebär att du ibland måste förutsäga intervallet eller hela fördelningen av mål variabeln. Tekniker som Bayesian regression och quantile regression har utvecklats för detta ändamål.

Quantile regression hjälper dig att förstå distributionen av det förväntade värdet. Tree-baserade quantile Regressions modeller, till exempel den som används i den här modulen, har den extra fördelen att de kan användas för att förutsäga icke-parameter distributioner.

Mer information och resurser för implementering finns i avsnittet tekniska anteckningar .

Så här konfigurerar du Fast_Forest Quantile regression

Du konfigurerar egenskaperna för Regressions modellen med hjälp av den här modulen och tränar den sedan med hjälp av en av träna-modulerna.

Konfigurations stegen skiljer sig avsevärt från dependng om du tillhandahåller en fast uppsättning parametrar eller ställer in en parameter rensning.

Skapa en quantile regression-modell med fasta parametrar

Förutsatt att du vet hur du vill konfigurera modellen kan du ange en speciell uppsättning värden som argument. När du tränar modellen använder du träna modell.

  1. Lägg till den snabba Quantile regression -modulen till experimentet i Studio (klassisk).

  2. Ange alternativet skapa ledar läge till en enda parameter.

  3. För antal träd anger du det maximala antalet träd som kan skapas i ensemblen. Om du skapar fler träd, leder det vanligt vis till större precision, men i kostnad av längre utbildnings tid.

  4. För antal löv anger du det maximala antalet löv eller terminalserversessioner som kan skapas i alla träd.

  5. För minsta antal utbildnings instanser som krävs för att bilda ett löv anger du det minsta antal exempel som krävs för att skapa en Terminal-nod (löv) i ett träd.

    Genom att öka det här värdet ökar du tröskelvärdet för att skapa nya regler. Till exempel, med standardvärdet 1, kan ett enda ärende orsaka att en ny regel skapas. Om du ökar värdet till 5 måste tränings data innehålla minst 5 fall som uppfyller samma villkor

  6. För bagagets bråk anger du ett tal mellan 0 och 1 som representerar fraktionen av de exempel som ska användas när du skapar varje grupp av quantiles. Exempel väljs slumpmässigt, med ersättnings.

  7. För funktions bråk anger du ett tal mellan 0 och 1 som anger fraktionen av de totala funktioner som ska användas när du skapar ett visst träd. Funktionerna väljs alltid slumpmässigt.

  8. För delat bråk anger du ett tal mellan 0 och 1 som representerar delar av de funktioner som ska användas i varje delning av trädet. De funktioner som används är alltid slumpmässigt markerade.

  9. I antal Quantile-prov anger du hur många fall du vill utvärdera när du uppskattar quantiles.

  10. För att Quantiles ska kunna uppskattas skriver du en kommaavgränsad lista över de Quantiles som du vill att modellen ska träna och skapa förutsägelser för.

    Om du till exempel vill bygga en modell som uppskattar för kvartilen skriver du 0.25, 0.5, 0.75 .

  11. Du kan också ange ett värde för ett slumptal för slumpmässig siffra för att dirigera den slumpmässiga nummer generatorn som används av modellen. Standardvärdet är 0, vilket innebär att ett slumpmässigt utsäde väljs.

    Du bör ange ett värde om du behöver återskapa resultat mellan efterföljande körningar på samma data.

  12. Välj alternativet Tillåt okända kategoriska-nivåer för att skapa en grupp för okända värden.

    Om du avmarkerar den kan modellen bara acceptera de värden som finns i tränings data.

    Om du väljer det här alternativet kan modellen vara mindre exakt för kända värden, men det kan ge bättre förutsägelser för nya (okända) värden.

  13. Anslut en data uppsättning för träning, Välj en enskild etikett kolumn och Anslut träna modell.

  14. Kör experimentet.

Använd en parameter svep för att skapa en quantile Regressions modell

Om du inte är säker på de optimala parametrarna för modellen kan du konfigurera en parameter rensning och ange ett värde intervall som argument. När du tränar modellen använder du modulen för att finjustera modells parametrar .

  1. Lägg till den snabba Quantile regression -modulen till experimentet i Studio (klassisk).

  2. Ställ in alternativet skapa ledar läge till parameter intervall.

    En parameter svep rekommenderas om du inte är säker på de bästa parametrarna. Genom att ange flera värden och använda modulen finjustera modell för att träna modellen, kan du hitta den optimala uppsättningen parametrar för dina data.

    När du har valt en parameter svep för varje egenskap som är justerbara kan du ange antingen ett enda värde eller flera värden. Du kan till exempel välja att åtgärda antalet träd, men ändra slumpmässigt andra värden som styr hur varje träd skapas.

    • Om du anger ett enda värde används det värdet i alla iterationer av svepet, även om andra värden ändras.

    • Skriv en kommaavgränsad lista med diskreta värden som ska användas. Dessa värden används i kombination med andra egenskaper.

    • Använd Range Builder för att definiera ett intervall med kontinuerliga värden.

    Under inlärnings processen upprepas modulen för att finjustera modellens standardvärden över olika kombinationer av värdena för att bygga den bästa modellen.

  3. För maximalt antal löv per träd, ange det totala antalet löv eller terminalserversessioner som ska tillåtas i varje träd.

  4. Ange antalet iterationer som ska utföras när ensemblen konstrueras för antalet skapade träd. Genom att skapa fler träd kan du eventuellt få bättre täckning, på kostnaden för ökad utbildnings tid.

  5. För minsta antal sampel per lövnod, anger du hur många fall som krävs för att skapa en lövnod.

    Genom att öka det här värdet ökar du tröskelvärdet för att skapa nya regler. Till exempel, med standardvärdet 1, kan ett enda ärende orsaka att en ny regel skapas. Om du ökar värdet till 5 måste tränings data innehålla minst 5 fall som uppfyller samma villkor.

  6. I området för bagagets bråk skriver du den del av exemplen som ska användas när du skapar varje grupp av quantiles. Exempel väljs slumpmässigt, med ersättnings.

    Varje bråk måste vara ett tal mellan 0 och 1. Avgränsa flera bråktal med kommatecken.

  7. I intervall för funktions bråk, anger du den andel av de totala funktionerna som ska användas när du skapar varje grupp av quantiles. Funktionerna väljs slumpmässigt.

    Varje bråk måste vara ett tal mellan 0 och 1. avgränsa flera bråk med kommatecken.

  8. I intervall för delat bråk anger du några delar av de funktioner som ska användas i varje grupp av quantiles. De faktiska funktionerna som används väljs slumpmässigt.

    Varje bråk måste vara ett tal mellan 0 och 1. avgränsa flera bråk med kommatecken.

  9. I antal sampel som används för att beräkna quantiles anger du hur många exempel som ska utvärderas när du uppskattar quantiles. Om du anger ett tal som är större än antalet tillgängliga exempel används alla exempel.

  10. I obligatoriska quantile-värden skriver du en kommaavgränsad lista över de quantiles som du vill att modellen ska träna. Om du till exempel vill bygga en modell som uppskattar kvartilen, skulle du skriva "0,25, 0,5, 0,75

  11. Skriv ett värde för att dirigera den slumpmässiga nummer generatorn som används av modellen i slumptal för slumpmässig numrering. Användning av ett dirigering är användbart för att återskapa dubbla körningar.

    Standardvärdet är 0, vilket innebär att ett slumpmässigt utsäde väljs.

  12. Välj alternativet Tillåt okända värden för kategoriska-funktioner om du vill skapa en grupp för okända värden i träningen eller verifierings uppsättningarna.

    Om du avmarkerar det här alternativet kan modellen bara acceptera de värden som finns i tränings data.

    Om du väljer det här alternativet kan modellen vara mindre exakt för kända värden, men det kan ge bättre förutsägelser för nya (okända) värden.

  13. Anslut en data uppsättning för träning, Välj kolumnen etikett och Anslut modulen för att finjustera modellens standardparametrar .

    Anteckning

    Använd inte träna modell. Om du konfigurerar ett parameter intervall men tränar med träna modell, används bara det första värdet i listan parameter intervall.

  14. Kör experimentet.

Resultat

När utbildningen är klar:

  • Om du vill se de slutliga egenskaperna för den optimerade modellen högerklickar du på utdata från finjustera modellens egenskaper och väljer visualisera.

Exempel

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

  • Quantile regression: visar hur du skapar och tolkar en Quantile Regressions modell med hjälp av den automatiska pris data uppsättningen.

Tekniska anteckningar

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

Implementeringsdetaljer

Den snabba Quantile regression -modulen i Azure Machine Learning är en implementering av slumpmässig skogs Quantile regression med hjälp av besluts träd. Slumpmässiga skogar kan vara till hjälp för att undvika överanpassning som kan ske med besluts träd. Ett besluts träd är ett binärt träd som flödes diagram, där varje inre nod, bestämmer vilken av de två underordnade noderna som ska fortsätta, baserat på värdet för en av funktionerna i indatan.

Ett värde returneras i varje nod. I de inre noderna baseras beslutet på testet "x ≤ v", där x är värdet för funktionen i indatamängden och v är ett av de möjliga värdena för den här funktionen. De funktioner som kan skapas av ett Regressions träd är alla enpresterande konstant funktioner.

I en slumpmässig skog skapas en ensemble med träd med hjälp av bagaget för att välja en delmängd av slumpmässiga exempel och funktioner i tränings data och sedan anpassa ett besluts träd till varje delmängd data. Till skillnad från den slumpmässiga skogen, som räknar ut utdatan från alla träd, behåller den snabba skogens Quantile regression alla förväntade etiketter i träd som anges av parametern Quantile antal exempel och utvärderar distributionen, så att användaren kan visa Quantile-värden för den aktuella instansen.

Mer information om quantile regression finns i följande böcker och artiklar:

Parametrar för modul

Namn Typ Intervall Valfritt Beskrivning Standardvärde
Skapa utbildare läge CreateLearnerMode Lista: parameter intervall för en parameter| Obligatorisk Enskild parameter Skapa avancerade alternativ för mer information
Antal träd Integer läge: enskild parameter 100 Ange antalet träd som ska konstrueras
Antal löv Integer läge: enskild parameter 20 Ange det maximala antalet löv per träd. Standardvärdet är 20
Minsta antal utbildnings instanser som krävs för att bilda ett löv Integer läge: enskild parameter 10 Anger det minsta antalet utbildnings instanser som krävs för att bilda ett löv
Bagage del Float läge: enskild parameter 0.7 Anger den andel av tränings data som ska användas för varje träd
Funktions bråk Float läge: enskild parameter 0.7 Anger den andel av funktionerna (som väljs slumpmässigt) som ska användas för varje träd
Dela bråk Float läge: enskild parameter 0.7 Anger den andel av de funktioner (som väljs slumpmässigt) som ska användas för varje delning
Antal Quantile-exempel Integer Max: 2147483647 läge: enskild parameter 100 Anger antal instanser som används i varje nod för att uppskatta quantiles
Quantiles som ska beräknas Sträng läge: enskild parameter "0,25; 0,5; 0,75" Anger den quantile som ska beräknas
Slumpmässigt värde för start Integer Valfritt Ange ett start värde för den slump tals generator som används av modellen. Lämna tomt som standard.
Tillåt okända kategoriska-nivåer Boolesk Obligatorisk true Om det här värdet är sant skapar du ytterligare en nivå för varje kategoriska-kolumn. Nivåer i test data uppsättningen är inte tillgängliga i hierarkin data uppsättning mappas till denna ytterligare nivå.
Maximalt antal löv per träd ParameterRangeSettings [16; 128] läge: parameter intervall 16 32; 64 Ange intervall för maximalt antal löv som tillåts per träd
Antal skapade träd ParameterRangeSettings [1; 256] läge: parameter intervall 16 32; 64 Ange intervallet för det maximala antalet träd som kan skapas under utbildningen
Minsta antal sampel per lövnod ParameterRangeSettings [1; 10] läge: parameter intervall 81.1 5 10 Ange intervallet för det minsta antal fall som krävs för att bilda ett löv
Intervall för bagage-fraktion ParameterRangeSettings [0,25; 1.0] läge: parameter intervall 0,25; 0,5; 0,75 Anger intervallet för den del av tränings data som ska användas för varje träd
Intervall för funktions bråk ParameterRangeSettings [0,25; 1.0] läge: parameter intervall 0,25; 0,5; 0,75 Anger intervallet för delar av funktioner (som väljs slumpmässigt) som ska användas för varje träd
Intervall för delat bråk ParameterRangeSettings [0,25; 1.0] läge: parameter intervall 0,25; 0,5; 0,75 Anger intervallet för delar av funktioner (som väljs slumpmässigt) som ska användas för varje delning
Antal sampel som används för att beräkna quantiles Integer läge: parameter intervall 100 Antal sampel som används för att beräkna quantiles
Obligatoriska quantile-värden Sträng läge: parameter intervall "0,25; 0,5; 0,75" Obligatoriskt quantile-värde som används under parameter rensning

Utdata

Namn Typ Beskrivning
Modell som inte är tränad ILearner-gränssnitt En icke-tränad quantile Regressions modell som kan anslutas till modulernas generiska modell eller kors validerings modell.

Se även

Regression