Linjär regression
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.
- Se information om hur du flyttar maskininlärningsprojekt från ML Studio (klassisk) till Azure Machine Learning.
- Läs mer om Azure Machine Learning.
Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.
Skapar en linjär regressionsmodell
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
Den här artikeln beskriver hur du använder modulen Linjär regression i Machine Learning Studio (klassisk) för att skapa en linjär regressionsmodell för användning i ett experiment. Linjär regression försöker upprätta en linjär relation mellan en eller flera oberoende variabler och ett numeriskt utfall eller en beroende variabel.
Du använder den här modulen för att definiera en linjär regressionsmetod och sedan träna en modell med hjälp av en etiketterad datauppsättning. Den tränade modellen kan sedan användas för att göra förutsägelser. Alternativt kan den tränade modellen skickas till korsvalideringsmodellen för korsvalidering mot en etiketterad datauppsättning.
Mer om linjär regression
Linjär regression är en vanlig statistisk metod som har använts i maskininlärning och förbättrats med många nya metoder för att passa linjen och mäta fel. I den mest grundläggande meningen refererar regression till förutsägelse av ett numeriskt mål. Linjär regression är fortfarande ett bra val när du vill ha en mycket enkel modell för en grundläggande förutsägelseuppgift. Linjär regression brukar också fungera bra på högdimensionella, glesa datauppsättningar som saknar komplexitet.
Machine Learning Studio (klassisk) stöder en mängd olika regressionsmodeller, förutom linjär regression. Termen "regression" kan dock tolkas löst, och vissa typer av regression som tillhandahålls i andra verktyg stöds inte i Studio (klassisk).
Det klassiska regressionsproblemet omfattar en enskild oberoende variabel och en beroende variabel. Detta kallas enkel regression. Den här modulen stöder enkel regression.
Multipel linjär regression omfattar två eller flera oberoende variabler som bidrar till en enda beroende variabel. Problem där flera indata används för att förutsäga ett enda numeriskt utfall kallas även multivariate linjär regression.
Modulen Linjär regression kan lösa dessa problem, precis som de flesta andra regressionsmoduler i Studio (klassisk).
Regression med flera etiketter är uppgiften att förutsäga flera beroende variabler i en enda modell. I logistisk regression med flera etiketter kan ett exempel till exempel tilldelas till flera olika etiketter. (Detta skiljer sig från uppgiften att förutsäga flera nivåer inom en enda klassvariabel.)
Den här typen av regression stöds inte i Machine Learning. Om du vill förutsäga flera variabler skapar du en separat användare för varje utdata som du vill förutsäga.
I flera år har statistiker utvecklat allt mer avancerade regressionsmetoder. Detta gäller även för linjär regression. Den här modulen stöder två metoder för att mäta fel och passa regressionslinjen: vanlig minsta kvadrat-metod och gradient descent.
Gradient descent är en metod som minimerar mängden fel vid varje steg i modellträningsprocessen. Det finns många varianter av gradient descent och dess optimering för olika inlärningsproblem har undersökts i stor utsträckning. Om du väljer det här alternativet för Lösningsmetod kan du ange olika parametrar för att styra stegstorleken, inlärningstakten och så vidare. Det här alternativet stöder också användning av en integrerad parametersökning.
Vanliga minsta kvadrater är en av de vanligaste teknikerna inom linjär regression. Minsta-kvadrat-metoden är till exempel den metod som används i Analysverktyg för Microsoft Excel.
Vanliga minsta kvadrater refererar till förlustfunktionen, som beräknar fel som summan av kvadraten av avståndet från det faktiska värdet till den förutsagda linjen och som passar modellen genom att minimera kvadratfelet. Den här metoden förutsätter en stark linjär relation mellan indata och den beroende variabeln.
Så här konfigurerar du linjär regression
Den här modulen stöder två metoder för att passa in en regressionsmodell med mycket olika alternativ:
Skapa en regressionsmodell med online gradient descent
Gradient descent är en bättre förlustfunktion för modeller som är mer komplexa eller som har för lite träningsdata beroende på antalet variabler.
Det här alternativet stöder också en parametersökning, om du tränar modellen med Hyperparametrar för att justera modellen för att automatiskt optimera modellparametrarna.
Anpassa en regressionsmodell med vanliga minsta-kvadrat-rutor
För små datauppsättningar är det bäst att välja vanliga minsta rutor. Detta bör ge mycket lika resultat som Excel.
Skapa en regressionsmodell med vanliga minsta-kvadrat-rutor
Lägg till modulen Linear Regression Model (Linjär regressionsmodell) i experimentet i Studio (klassisk).
Du hittar den här modulen i Machine Learning kategori. Expandera Initiera modell, expandera Regression och dra sedan modulen Linjär regressionsmodell till experimentet.
I fönstret Egenskaper går du till listrutan Lösningsmetod och väljer Vanliga minsta kvadrater. Det här alternativet anger den beräkningsmetod som används för att hitta regressionslinjen.
I L2-regulariseringsvikt anger du det värde som ska användas som vikt för L2-regularisering. Vi rekommenderar att du använder ett värde som inte är noll för att undvika överfitting.
Mer information om hur regularisering påverkar modellanpassning finns i den här artikeln: L1- och L2-regularisering för Machine Learning
Välj alternativet Inkludera skärningspunkt om du vill visa termen för skärningspunkt.
Avmarkera det här alternativet om du inte behöver granska regressionsformeln.
För Slumptalsvärde kan du välja att ange ett värde för att seeda slumptalsgeneratorn som används av modellen.
Att använda ett startvärde är användbart om du vill behålla samma resultat över olika körningar av samma experiment. Annars är standardvärdet att använda ett värde från systemklockan.
Avmarkera alternativet Tillåt okända kategoriska nivåer om du vill att saknade värden ska skapa ett fel.
Om det här alternativet är markerat skapas ytterligare en nivå för varje kategorisk kolumn. Alla nivåer i testdatamängden som inte fanns i träningsdatamängden mappas till den här ytterligare nivån.
Lägg till modulen Träna modell i experimentet och anslut en etiketterad datauppsättning.
Kör experimentet.
Resultat för vanlig minsta-kvadrat-modell
När träningen är klar:
Om du vill visa modellens parametrar högerklickar du på utbildarutdata och väljer Visualisera.
Om du vill göra förutsägelser ansluter du den tränade modellen till modulen Score Model (Poängmodell) tillsammans med en datauppsättning med nya värden.
Om du vill utföra korsvalidering mot en etiketterad datauppsättning ansluter du den tränade modellen till korsvalideringsmodellen.
Skapa en regressionsmodell med online gradient descent
Lägg till modulen Linear Regression Model (Linjär regressionsmodell) i experimentet i Studio (klassisk).
Du hittar den här modulen i Machine Learning kategori. Expandera Initiera modell, expandera Regression och dra modulen Linjär regressionsmodell till experimentet
I fönstret Egenskaper i listrutan Lösningsmetod väljer du Online Gradient Descent som beräkningsmetod för att hitta regressionslinjen.
I läget Skapa utbildare anger du om du vill träna modellen med en fördefinierad uppsättning parametrar eller om du vill optimera modellen med hjälp av en parameterseparering.
Enskild parameter: Om du vet hur du vill konfigurera det linjära regressionsnätverket kan du ange en specifik uppsättning värden som argument.
Parameterintervall: Om du vill att algoritmen ska hitta de bästa parametrarna för dig ställer du in alternativet Skapa utbildarläge på Parameterintervall. Du kan sedan ange flera värden som algoritmen ska prova.
För Learning anger du den inledande inlärningstakten för optimeringen av stochastic gradient descent.
I Antal träningsepoker anger du ett värde som anger hur många gånger algoritmen ska iterera genom exempel. För datauppsättningar med ett litet antal exempel bör det här antalet vara stort för att uppnå konvergens.
Normalisera funktioner: Om du redan har normaliserat de numeriska data som används för att träna modellen kan du avmarkera det här alternativet. Som standard normaliserar modulen alla numeriska indata till ett intervall mellan 0 och 1.
Anteckning
Kom ihåg att använda samma normaliseringsmetod för nya data som används för bedömning.
I L2-regulariseringsvikt anger du det värde som ska användas som vikt för L2-regularisering. Vi rekommenderar att du använder ett värde som inte är noll för att undvika överanpassad.
Mer information om hur regularisering påverkar modellanpassning finns i den här artikeln: L1- och L2-regularisering för Machine Learning
Välj alternativet Average final hypothesis (Genomsnittlig slutlig hypotes) för att beräkna medelvärdet av den slutliga hypotesen.
I regressionsmodeller innebär hypotestestning att viss statistik används för att utvärdera sannolikheten för nollhypotesen, som säger att det inte finns någon linjär korrelation mellan en beroende och oberoende variabel. I många regressionsproblem måste du testa en hypotes som omfattar fler än en variabel.
Det här alternativet är aktiverat som standard, vilket innebär att algoritmen testar en kombination av de parametrar där två eller flera parametrar är inblandade.
Välj alternativet Minska inlärningstakten om du vill att inlärningstakten ska minska när iterationerna fortskrider.
För Slumptalsvärde kan du välja att ange ett värde för att seeda slumptalsgeneratorn som används av modellen. Att använda ett startvärde är användbart om du vill behålla samma resultat över olika körningar av samma experiment.
Avmarkera alternativet Tillåt okända kategoriska nivåer om du vill att saknade värden ska skapa ett fel.
När det här alternativet väljs skapas ytterligare en nivå för varje kategorisk kolumn. Alla nivåer i testdatamängden som inte finns i träningsdatamängden mappas till den här ytterligare nivån.
Lägg till en etiketterad datauppsättning och en av träningsmodulerna.
Om du inte använder en parametersökning använder du modulen Träna modell.
Om du vill att algoritmen ska hitta de bästa parametrarna åt dig tränar du modellen med hyperparametrarna för finjustera modellen.
Anteckning
Om du konfigurerar modellen med specifika värden med alternativet Enkel parameter och sedan växlar till alternativet Parameterintervall tränas modellen med det minsta värdet i intervallet för varje parameter.
Om du å andra sidan konfigurerar specifika inställningar när du skapar modellen men väljer alternativet Parameterintervall tränas modellen med standardvärdena för eleven som det intervall med värden som ska rensas.
Kör experimentet.
Resultat för gradient descent online
När träningen är klar:
- Om du vill göra förutsägelser ansluter du den tränade modellen till modulen Poängmodell tillsammans med nya indata.
- Om du vill utföra korsvalidering mot en etiketterad datauppsättning ansluter du den tränade modellen till korsvalideringsmodellen.
Exempel
Exempel på regressionsmodeller finns i dessa exempelexperiment i Azure AI Gallery:
Jämför regresatorer: Kontrasterar flera olika typer av regressionsmodeller.
Korsvalidering för regression: Visar linjär regression med vanliga minsta kvadrater.
Twitter-attitydanalys: Använder flera olika regressionsmodeller för att generera förutsagda omdömen.
Teknisk information
Det här avsnittet innehåller implementeringsinformation, tips och svar på vanliga frågor.
Användningstips
Många verktyg stöder skapandet av linjär regression, från det enkla till det komplexa. Du kan till exempel enkelt utföra linjär regression i Excel med solververktyget eller koda din egen regressionsalgoritm med hjälp av R, Python eller C#.
Men eftersom linjär regression är en väletablerad teknik som stöds av många olika verktyg finns det många olika tolkningar och implementeringar. Alla typer av modeller stöds inte lika av alla verktyg. Det finns också vissa skillnader i terminologin att observera.
Regressionsmetoder kategoriseras ofta efter antalet svarsvariabler. Till exempel innebär multipel linjär regression en modell som har flera variabler att förutsäga.
I Matlab refererar multivariate regression till en modell som har flera svarsvariabler.
I Machine Learning stöder regressionsmodeller en enda svarsvariabel.
I R-språket beror funktionerna för linjär regression på det paket som du använder. Med glm-paketet kan du till exempel skapa en logistisk regressionsmodell med flera oberoende variabler. I allmänhet innehåller Machine Learning Studio (klassisk) samma funktioner som R glm-paketet.
Vi rekommenderar att du använder den här modulen, Linjär regression, för vanliga regressionsproblem.
Om du däremot använder flera variabler för att förutsäga ett klassvärde rekommenderar vi modulerna Tvåklassig Logistic Regression eller Logistic Regression med flera klasser.
Om du vill använda andra linjära regressionspaket som är tillgängliga för R-språket rekommenderar vi att du använder modulen Kör R-skript och anropar lm- eller glm-paketen, som ingår i körningsmiljön i Machine Learning Studio (klassisk).
Modulparametrar
Name | Intervall | Typ | Standardvärde | Description |
---|---|---|---|---|
Normalisera funktioner | valfri | Boolesk | true | Ange om instanser ska normaliseras |
Genomsnittlig slutlig hypotes | valfri | Boolesk | true | Ange om den slutgiltiga hypotesen ska beräknas som ett medelvärde |
Inlärningstakt | >=double. Epsilon | Float | 0.1 | Ange den inledande inlärningstakten för optimeringen av stochastic gradient descent |
Antal träningsepoker | >= 0 | Integer | 10 | Ange hur många gånger algoritmen ska iterera genom exempel. För datauppsättningar med ett litet antal exempel bör det här antalet vara stort för att uppnå konvergens. |
Minska inlärningstakten | Valfri | Boolesk | true | Ange om inlärningstakten ska minska när iterationerna fortskrider |
L2-regulariseringsvikt | >= 0,0 | Float | 0,001 | Ange vikten för L2-regularisering. Använd ett värde som inte är noll för att undvika överfitting. |
Startnummer för slumptal | valfri | Integer | Ange ett värde för att seeda slumptalsgeneratorn som används av modellen. Lämna tomt som standard. | |
Tillåt okända kategoriska nivåer | valfri | Boolesk | true | Ange om ytterligare en nivå ska skapas 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. |
Inkludera skärningspunkt | Valfri | Boolesk | Sant | Ange om ytterligare en term ska läggas till för skärningspunkt |
Utdata
Namn | Typ | Description |
---|---|---|
Ej tränad modell | ILearner-gränssnitt | En tränad regressionsmodell |