Beslutsgräns
Låt oss visualisera resultaten av logistisk regression. Betrakta följande exempel med två variabler:
När vi har byggt en logistisk regression kan vi rita ut en beslutsgräns. Den visar varje klass region där nya instanser förutsägs tillhöra den klassen. Här är till exempel beslutsgränsen för logistisk regression applicerad på ovanstående data:
Vi kan se att linjen här perfekt separerar de två klasserna. När det sker kallas datasetet linjärt separerbart. Det är dock inte alltid fallet. Vad händer om datasetet ser ut så här:
Ovan visas en beslutsgräns för en något annorlunda datamängd. Här är data inte linjärt separerbar; därför är de förutsägelser som görs av logistisk regression inte perfekta. Tyvärr kan logistisk regression inte förutsäga mer komplexa beslutsgränser som standard, så detta är den bästa förutsägelsen vi kan få.
Men kom ihåg att logistisk regression härstammar från linjär regression, som har en lösning på problemet med att modellen är för enkel. Denna lösning är en polynomregression, och vi kan använda dess ekvation för att beräkna z för att få en mer komplex form på beslutsgränsen:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Precis som i polynomregression kan vi använda transformern PolynomialFeatures för att lägga till polynomtermer till våra variabler – detta hjälper modellen att lära sig mer komplexa mönster.
from sklearn.preprocessing import PolynomialFeatures
X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)
Denna rad transformerar de ursprungliga indatafunktionerna i X genom att lägga till:
- Kvadrattermer (t.ex. x2);
- Interaktionstermer (t.ex. x1⋅x2 om det finns flera funktioner).
Till exempel, om X ursprungligen har två funktioner: [x1,x2], så får du efter att ha använt PolynomialFeatures(2, include_bias=False): [x1,x2,x12,x1x2,x22]
Detta gör att modeller som logistisk regression kan fånga icke-linjära samband och producera mer flexibla, böjda beslutsgränser. Men att öka graden för mycket kan leda till att modellen anpassar sig för väl till träningsdatan – ett problem som kallas överanpassning. Därför brukar vi börja med lägre grader och utvärdera modellen noggrant.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 4.17
Beslutsgräns
Svep för att visa menyn
Låt oss visualisera resultaten av logistisk regression. Betrakta följande exempel med två variabler:
När vi har byggt en logistisk regression kan vi rita ut en beslutsgräns. Den visar varje klass region där nya instanser förutsägs tillhöra den klassen. Här är till exempel beslutsgränsen för logistisk regression applicerad på ovanstående data:
Vi kan se att linjen här perfekt separerar de två klasserna. När det sker kallas datasetet linjärt separerbart. Det är dock inte alltid fallet. Vad händer om datasetet ser ut så här:
Ovan visas en beslutsgräns för en något annorlunda datamängd. Här är data inte linjärt separerbar; därför är de förutsägelser som görs av logistisk regression inte perfekta. Tyvärr kan logistisk regression inte förutsäga mer komplexa beslutsgränser som standard, så detta är den bästa förutsägelsen vi kan få.
Men kom ihåg att logistisk regression härstammar från linjär regression, som har en lösning på problemet med att modellen är för enkel. Denna lösning är en polynomregression, och vi kan använda dess ekvation för att beräkna z för att få en mer komplex form på beslutsgränsen:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Precis som i polynomregression kan vi använda transformern PolynomialFeatures för att lägga till polynomtermer till våra variabler – detta hjälper modellen att lära sig mer komplexa mönster.
from sklearn.preprocessing import PolynomialFeatures
X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)
Denna rad transformerar de ursprungliga indatafunktionerna i X genom att lägga till:
- Kvadrattermer (t.ex. x2);
- Interaktionstermer (t.ex. x1⋅x2 om det finns flera funktioner).
Till exempel, om X ursprungligen har två funktioner: [x1,x2], så får du efter att ha använt PolynomialFeatures(2, include_bias=False): [x1,x2,x12,x1x2,x22]
Detta gör att modeller som logistisk regression kan fånga icke-linjära samband och producera mer flexibla, böjda beslutsgränser. Men att öka graden för mycket kan leda till att modellen anpassar sig för väl till träningsdatan – ett problem som kallas överanpassning. Därför brukar vi börja med lägre grader och utvärdera modellen noggrant.
Tack för dina kommentarer!