Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Beslutningsgrænse | Logistisk Regression
Klassifikation med Python

bookBeslutningsgrænse

Lad os visualisere resultaterne af logistisk regression. Overvej følgende eksempel med to funktioner:

Når vi har opbygget en logistisk regression, kan vi tegne en beslutningsgrænse. Den viser hvert klasses område, hvor nye instanser forudsiges som den klasse. For eksempel ses her beslutningsgrænsen for logistisk regression anvendt på ovenstående data:

Vi kan se, at linjen her adskiller de to klasser perfekt. Når det sker, kaldes datasættet lineært separabelt. Det er dog ikke altid tilfældet. Hvad nu hvis datasættet så sådan ud:

Ovenfor ses en beslutningsgrænse for et lidt anderledes datasæt. Her er dataene ikke lineært separable; derfor er de forudsigelser, som Logistic Regression laver, ikke perfekte. Desværre kan Logistic Regression som standard ikke forudsige mere komplekse beslutningsgrænser, så dette er den bedste forudsigelse, vi kan opnå.

Men husk, at Logistic Regression er afledt af Lineær Regression, som har en løsning på problemet med, at modellen er for simpel. Denne løsning er en Polynomiel Regression, og vi kan bruge dens ligning til at beregne zz for at få en mere kompleks form på beslutningsgræ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

Ligesom i Polynomiel Regression kan vi bruge PolynomialFeatures-transformeren til at tilføje polynomielle termer til vores features – dette hjælper modellen med at lære mere komplekse mønstre.

from sklearn.preprocessing import PolynomialFeatures

X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)

Denne linje transformerer de oprindelige input-features i X ved at tilføje:

  • Kvadrerede termer (f.eks. x2x^2);
  • Interaktionstermer (f.eks. x1x2x_1 \cdot x_2 hvis der er flere features).

For eksempel, hvis X oprindeligt har to features: [x1,x2][x_1, x_2], så får du efter at have anvendt PolynomialFeatures(2, include_bias=False): [x1,x2,x12,x1x2,x22][x_1, x_{2}, x_{1}\\^{2} , x_{1} x_{2}, x_{2}\\^{2}]

Dette gør det muligt for modeller som Logistic Regression at fange ikke-lineære sammenhænge og producere mere fleksible, buede beslutningsgrænser. Dog kan en for høj grad føre til, at modellen tilpasser sig træningsdataene for godt – et problem kendt som overfitting. Derfor starter vi som regel med lavere grader og evaluerer modellen grundigt.

question mark

Hvorfor har man brug for polynomielle features i Logistic Regression?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 4.17

bookBeslutningsgrænse

Stryg for at vise menuen

Lad os visualisere resultaterne af logistisk regression. Overvej følgende eksempel med to funktioner:

Når vi har opbygget en logistisk regression, kan vi tegne en beslutningsgrænse. Den viser hvert klasses område, hvor nye instanser forudsiges som den klasse. For eksempel ses her beslutningsgrænsen for logistisk regression anvendt på ovenstående data:

Vi kan se, at linjen her adskiller de to klasser perfekt. Når det sker, kaldes datasættet lineært separabelt. Det er dog ikke altid tilfældet. Hvad nu hvis datasættet så sådan ud:

Ovenfor ses en beslutningsgrænse for et lidt anderledes datasæt. Her er dataene ikke lineært separable; derfor er de forudsigelser, som Logistic Regression laver, ikke perfekte. Desværre kan Logistic Regression som standard ikke forudsige mere komplekse beslutningsgrænser, så dette er den bedste forudsigelse, vi kan opnå.

Men husk, at Logistic Regression er afledt af Lineær Regression, som har en løsning på problemet med, at modellen er for simpel. Denne løsning er en Polynomiel Regression, og vi kan bruge dens ligning til at beregne zz for at få en mere kompleks form på beslutningsgræ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

Ligesom i Polynomiel Regression kan vi bruge PolynomialFeatures-transformeren til at tilføje polynomielle termer til vores features – dette hjælper modellen med at lære mere komplekse mønstre.

from sklearn.preprocessing import PolynomialFeatures

X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)

Denne linje transformerer de oprindelige input-features i X ved at tilføje:

  • Kvadrerede termer (f.eks. x2x^2);
  • Interaktionstermer (f.eks. x1x2x_1 \cdot x_2 hvis der er flere features).

For eksempel, hvis X oprindeligt har to features: [x1,x2][x_1, x_2], så får du efter at have anvendt PolynomialFeatures(2, include_bias=False): [x1,x2,x12,x1x2,x22][x_1, x_{2}, x_{1}\\^{2} , x_{1} x_{2}, x_{2}\\^{2}]

Dette gør det muligt for modeller som Logistic Regression at fange ikke-lineære sammenhænge og producere mere fleksible, buede beslutningsgrænser. Dog kan en for høj grad føre til, at modellen tilpasser sig træningsdataene for godt – et problem kendt som overfitting. Derfor starter vi som regel med lavere grader og evaluerer modellen grundigt.

question mark

Hvorfor har man brug for polynomielle features i Logistic Regression?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 4
some-alt