Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Beslutningsgrense | Logistisk Regresjon
Klassifisering med Python

bookBeslutningsgrense

La oss visualisere resultatene av logistisk regresjon. Vurder følgende eksempel med to funksjoner:

Når vi har bygget en logistisk regresjon, kan vi visualisere en beslutningsgrense. Den viser hvert klasses område hvor nye instanser blir predikert som den klassen. For eksempel, her er beslutningsgrensen til logistisk regresjon brukt på dataene ovenfor:

Vi kan se at linjen her skiller de to klassene perfekt. Når det skjer, kalles datasettet lineært separerbart. Dette er imidlertid ikke alltid tilfelle. Hva om datasettet ser slik ut:

Ovenfor vises en beslutningsgrense for et litt annerledes datasett. Her er dataene ikke lineært separerbare; derfor er prediksjonene gjort av logistisk regresjon ikke perfekte. Dessverre kan logistisk regresjon ikke forutsi mer komplekse beslutningsgrenser som standard, så dette er den beste prediksjonen vi kan oppnå.

Men husk at logistisk regresjon er avledet fra lineær regresjon, som har en løsning på problemet med at modellen er for enkel. Denne løsningen er polynomregresjon, og vi kan bruke dens ligning for å beregne zz for å få en mer kompleks form på beslutningsgrensen:

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

Akkurat som i polynomregresjon kan vi bruke PolynomialFeatures-transformatoren for å legge til polynomledd til våre variabler – dette hjelper modellen å lære mer komplekse mønstre.

from sklearn.preprocessing import PolynomialFeatures

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

Denne linjen transformerer de opprinnelige inputvariablene i X ved å legge til:

  • Kvadratiske ledd (f.eks. x2x^2);
  • Interaksjonsledd (f.eks. x1x2x_1 \cdot x_2 hvis det er flere variabler).

For eksempel, hvis X opprinnelig har to variabler: [x1,x2][x_1, x_2], så får du etter å ha brukt 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 gjør at modeller som logistisk regresjon kan fange opp ikke-lineære sammenhenger og produsere mer fleksible, buede beslutningsgrenser. Men å øke graden for mye kan føre til at modellen tilpasser seg treningsdataene for godt – et problem kjent som overtilpasning. Derfor prøver vi vanligvis mindre grader først og evaluerer modellen nøye.

question mark

Hvorfor trenger du polynomvariabler i logistisk regresjon?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 4.17

bookBeslutningsgrense

Sveip for å vise menyen

La oss visualisere resultatene av logistisk regresjon. Vurder følgende eksempel med to funksjoner:

Når vi har bygget en logistisk regresjon, kan vi visualisere en beslutningsgrense. Den viser hvert klasses område hvor nye instanser blir predikert som den klassen. For eksempel, her er beslutningsgrensen til logistisk regresjon brukt på dataene ovenfor:

Vi kan se at linjen her skiller de to klassene perfekt. Når det skjer, kalles datasettet lineært separerbart. Dette er imidlertid ikke alltid tilfelle. Hva om datasettet ser slik ut:

Ovenfor vises en beslutningsgrense for et litt annerledes datasett. Her er dataene ikke lineært separerbare; derfor er prediksjonene gjort av logistisk regresjon ikke perfekte. Dessverre kan logistisk regresjon ikke forutsi mer komplekse beslutningsgrenser som standard, så dette er den beste prediksjonen vi kan oppnå.

Men husk at logistisk regresjon er avledet fra lineær regresjon, som har en løsning på problemet med at modellen er for enkel. Denne løsningen er polynomregresjon, og vi kan bruke dens ligning for å beregne zz for å få en mer kompleks form på beslutningsgrensen:

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

Akkurat som i polynomregresjon kan vi bruke PolynomialFeatures-transformatoren for å legge til polynomledd til våre variabler – dette hjelper modellen å lære mer komplekse mønstre.

from sklearn.preprocessing import PolynomialFeatures

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

Denne linjen transformerer de opprinnelige inputvariablene i X ved å legge til:

  • Kvadratiske ledd (f.eks. x2x^2);
  • Interaksjonsledd (f.eks. x1x2x_1 \cdot x_2 hvis det er flere variabler).

For eksempel, hvis X opprinnelig har to variabler: [x1,x2][x_1, x_2], så får du etter å ha brukt 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 gjør at modeller som logistisk regresjon kan fange opp ikke-lineære sammenhenger og produsere mer fleksible, buede beslutningsgrenser. Men å øke graden for mye kan føre til at modellen tilpasser seg treningsdataene for godt – et problem kjent som overtilpasning. Derfor prøver vi vanligvis mindre grader først og evaluerer modellen nøye.

question mark

Hvorfor trenger du polynomvariabler i logistisk regresjon?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 4
some-alt