Logistic Regression med två klasser
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 logistisk regressionsmodell med två klasser
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
Den här artikeln beskriver hur du använder modulen Logistic Regression med två klasser i Machine Learning Studio (klassisk) för att skapa en logistisk regressionsmodell som kan användas för att förutsäga två (och endast två) resultat.
Logistisk regression är en välkänd statistisk teknik som används för att modellera många typer av problem. Den här algoritmen är en övervakad inlärningsmetod . Därför måste du ange en datauppsättning som redan innehåller resultaten för att träna modellen.
Mer om logistisk regression
Logistisk regression är en välkänd metod i statistik som används för att förutsäga sannolikheten för ett utfall och är särskilt populär för klassificeringsuppgifter. Algoritmen förutsäger sannolikheten för förekomst av en händelse genom att anpassa data till en logistisk funktion. Mer information om den här implementeringen finns i avsnittet Tekniska anteckningar.
I den här modulen är klassificeringsalgoritmen optimerad för dikotomiska eller binära variabler. Om du behöver klassificera flera resultat använder du modulen Logistic Regression med flera klasser.
Så här konfigurerar du Two-Class Logistic Regression
Om du vill träna den här modellen måste du ange en datauppsättning som innehåller en etikett eller en klasskolumn. Eftersom den här modulen är avsedd för tvåklassproblem måste etiketten eller klasskolumnen innehålla exakt två värden.
Etikettkolumnen kan till exempel vara [Fördr], med möjliga värden för "Ja" eller "Nej". Eller så kan det vara [Kreditrisk], med möjliga värden på "Hög" eller "Låg".
Lägg till modulen Logistic Regression med två klasser i experimentet i Studio (klassisk).
Ange hur du vill att modellen ska tränas genom att ange alternativet Skapa tränarlä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 genom att ange flera värden och använda modulen Justera hyperparametrar för modell för att hitta den optimala konfigurationen. Utbildaren itererar över flera kombinationer av inställningarna och avgör vilken kombination av värden som ger den bästa modellen.
För Optimeringstolerans anger du ett tröskelvärde som ska användas när modellen optimeras. Om förbättringen mellan iterationer understiger det angivna tröskelvärdet anses algoritmen ha konvergerats på en lösning och träningen stoppas.
För L1-regulariseringsviktoch L2-regulariseringsvikt anger du ett värde som ska användas för regulariseringsparametrarna L1 och L2. Ett värde som inte är noll rekommenderas för båda.
Regularisering är en metod för att förhindra överanpassning genom att visualisera modeller med extrema koefficientvärden. Regularisering fungerar genom att lägga till den påföljd som associeras med koefficientvärden till hypotesens fel. Därför skulle en korrekt modell med extrema koefficientvärden förfalla mer, men en mindre exakt modell med mer försiktigare värden skulle få mindre värde.
L1- och L2-regularisering har olika effekter och användningsområden.
L1 kan tillämpas på glesa modeller, vilket är användbart när du arbetar med högdimensionella data.
L2-regularisering är däremot att föredra för data som inte är glesa.
Den här algoritmen stöder en linjär kombination av regulariseringsvärdena L1 och L2: det vill säga om
x = L1
y = L2
och ,ax + by = c
definierar sedan det linjära intervallet för regulariseringsvillkoren.Anteckning
Vill du lära dig mer om L1- och L2-regularisering? Följande artikel innehåller en beskrivning av hur L1- och L2-regularisering skiljer sig åt och hur de påverkar modellanpassning, med kodexempel för logistisk regression och modeller för neurala nätverk: L1- och L2-regularisering för Machine Learning
Olika linjära kombinationer av L1- och L2-termer har utformats för logistiska regressionsmodeller, till exempel elastisk nät regularisering. Vi rekommenderar att du refererar till dessa kombinationer för att definiera en linjär kombination som är effektiv i din modell.
För Minnesstorlek för L-BFGS anger du hur mycket minne som ska användas för L-BFGS-optimering .
L-BFGS står för "limited memory Broyden-Fletcher-Goldfarb-Uggrno". Det är en optimeringsalgoritm som är populär för parameteruppskattning. Den här parametern anger antalet tidigare positioner och toningar som ska lagras för beräkningen av nästa steg.
Den här optimeringsparametern begränsar mängden minne som används för att beräkna nästa steg och riktning. När du anger mindre minne blir träningen snabbare men mindre exakt.
För Startvärde för slumptal skriver du ett heltalsvärde. Det är viktigt att definiera ett startvärde om du vill att resultaten ska återskapas över flera körningar av samma experiment.
Välj alternativet Tillåt okända kategoriska nivåer för att skapa ytterligare en "okänd" nivå i varje kategorisk kolumn. Om du gör det mappas alla värden (nivåer) i testdatamängden som inte är tillgängliga i träningsdatauppsättningen till den här "okända" nivån.
Lägg till en taggad datauppsättning i experimentet och anslut en av träningsmodulerna.
Om du ställer in läget Skapa utbildarepå Enkel parameter använder du modulen Träna modell.
Om du ställer in läget Skapa utbildarepå Parameterintervall använder du modulen Justera hyperparametrar för modell .
Anteckning
Om du skickar ett parameterintervall till Train Model (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 och standardvärdena för learner ignoreras när ett antal inställningar för varje parameter förväntas.
Om du väljer alternativet Parameterintervall och anger ett enda värde för en parameter, kommer det enskilda värde som du har angett att användas under hela genomsökningsintervallet, även om andra parametrar ändras över ett värdeintervall.
Kör experimentet.
Resultat
När träningen är klar:
Om du vill se en sammanfattning av modellens parametrar, tillsammans med de funktionsvikter som lärts in från träningen, högerklickar du på utdata från Träna modell eller Finjustera hyperparametrar för modell och väljer Visualisera.
Om du vill göra förutsägelser om nya data använder du den tränade modellen och nya data som indata till modulen Poängmodell .
Om du vill utföra korsvalidering mot en etiketterad datauppsättning ansluter du data och den tränade modellen till korsvalideringsmodellen.
Exempel
Exempel på hur den här inlärningsalgoritmen används finns i Azure AI Gallery:
Identifiering av nätverksintrång: Använder binär logistisk regression för att avgöra om ett ärende representerar ett intrång.
Korsvalidering för binär klassificerare: Visar användningen av logistisk regression i ett typiskt experimentellt arbetsflöde, inklusive modellutvärdering.
Teknisk information
Det här avsnittet innehåller implementeringsinformation, tips och svar på vanliga frågor.
Användningstips
Logistisk regression kräver numeriska variabler. När du använder kategoriska kolumner som variabel konverterar Machine Learning därför värdena till en indikatormatris internt.
För datum och tider används en numerisk representation. (Mer information om datum/tid-värden finns i DateTime-struktur (.NET Framework) – Kommentarer.) Om du vill hantera datum och tider på olika sätt föreslår vi att du skapar en härledd kolumn.
Implementeringsdetaljer
Logistisk regression förutsätter en logistisk fördelning av data, där sannolikheten att ett exempel tillhör klass 1 är formeln:
p(x;β0,…, βD-1)
Plats:
x
är en D-dimensionell vektor som innehåller värdena för alla funktioner i instansen.p
är funktionen logistisk distribution.β{0},..., β {D-1}
är de okända parametrarna för den logistiska fördelningen.
Algoritmen försöker hitta de optimala värdena för genom β{0},..., β {D-1}
att maximera loggsannolikhet för parametrarna givet indata. Maximering utförs med hjälp av en populär metod för parameteruppskattning, som kallas För begränsat minne BFGS.
Forskning
Mer information om implementeringen av den här algoritmen finns i Scalable Training of L-1 Regularized Log-Linear Models, av Andrew och Gao.
Modulparametrar
Name | Intervall | Typ | Standardvärde | Description |
---|---|---|---|---|
Optimeringstolerans | >=double. Epsilon | Float | 0.0000001 | Ange ett toleransvärde för L-BFGS-optimeraren |
L1-regulariseringsvikt | >=0,0 | Float | 1.0 | Ange regulariseringsvikten för L1 |
L2-regulariseringsvikt | >=0,0 | Float | 1.0 | Ange regulariseringsvikten L2 |
Minnesstorlek för L-BFGS | >=1 | Integer | 20 | Ange mängden minne (i MB) som ska användas för L-BFGS-optimeraren |
Slumptals seed | 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 | 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. |
Utdata
Namn | Typ | Description |
---|---|---|
Ej tränad modell | ILearner-gränssnitt | En ej tränad klassificeringsmodell |