Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Beslutsgräns | Sektion
Practice
Projects
Quizzes & Challenges
Frågesporter
Challenges
/
Grunder i Övervakad Inlärning

bookBeslutsgräns

Vi visualiserar resultaten av logistisk regression. Betrakta följande exempel med två variabler:

När en logistisk regression har byggts kan en beslutsgräns visualiseras. Den visar varje klass region där nya instanser förutsägs tillhöra den klassen. Här visas till exempel beslutsgränsen för logistisk regression tillämpad på ovanstående data:

Vi kan se att linjen här separerar de två klasserna perfekt. När detta 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 datan inte linjärt separerbar; därför blir förutsägelserna 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 zz för att få en mer komplex form på beslutsgränsen:

z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22z = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_1^2 + \beta_4 x_1 x_2 + \beta_5 x_2^2

Precis 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. x2x^2);
  • Interaktionstermer (t.ex. x1x2x_1 \cdot x_2 om det finns flera variabler).

Till exempel, om X ursprungligen har två variabler: [x1,x2][x_1, x_2], så får du efter att ha använt PolynomialFeatures(2, include_bias=False): [x1,x2,x12,x1x2,x22][x_1, x_{2}, x_{1}\\^{2} , x_{1} x_{2}, x_{2}\\^{2}]

Detta gör att modeller som logistisk regression kan fånga icke-linjära samband och producera mer flexibla, böjda beslutsgränser. Men om graden ökas för mycket kan modellen anpassa sig för väl till träningsdatan – ett problem som kallas överanpassning. Därför börjar vi oftast med lägre grader och utvärderar modellen noggrant.

question mark

Varför behöver du polynomfunktioner i logistisk regression?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 24

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

bookBeslutsgräns

Svep för att visa menyn

Vi visualiserar resultaten av logistisk regression. Betrakta följande exempel med två variabler:

När en logistisk regression har byggts kan en beslutsgräns visualiseras. Den visar varje klass region där nya instanser förutsägs tillhöra den klassen. Här visas till exempel beslutsgränsen för logistisk regression tillämpad på ovanstående data:

Vi kan se att linjen här separerar de två klasserna perfekt. När detta 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 datan inte linjärt separerbar; därför blir förutsägelserna 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 zz för att få en mer komplex form på beslutsgränsen:

z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22z = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_1^2 + \beta_4 x_1 x_2 + \beta_5 x_2^2

Precis 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. x2x^2);
  • Interaktionstermer (t.ex. x1x2x_1 \cdot x_2 om det finns flera variabler).

Till exempel, om X ursprungligen har två variabler: [x1,x2][x_1, x_2], så får du efter att ha använt PolynomialFeatures(2, include_bias=False): [x1,x2,x12,x1x2,x22][x_1, x_{2}, x_{1}\\^{2} , x_{1} x_{2}, x_{2}\\^{2}]

Detta gör att modeller som logistisk regression kan fånga icke-linjära samband och producera mer flexibla, böjda beslutsgränser. Men om graden ökas för mycket kan modellen anpassa sig för väl till träningsdatan – ett problem som kallas överanpassning. Därför börjar vi oftast med lägre grader och utvärderar modellen noggrant.

question mark

Varför behöver du polynomfunktioner i logistisk regression?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 24
some-alt