Beslutningsgræ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 z for at få en mere kompleks form på beslutningsgrænsen:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Ligesom 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. x2);
- Interaktionstermer (f.eks. x1⋅x2 hvis der er flere features).
For eksempel, hvis X oprindeligt har to features: [x1,x2], så får du efter at have anvendt PolynomialFeatures(2, include_bias=False): [x1,x2,x12,x1x2,x22]
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.
Tak for dine kommentarer!
Spørg AI
Spørg AI
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
Beslutningsgræ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 z for at få en mere kompleks form på beslutningsgrænsen:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Ligesom 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. x2);
- Interaktionstermer (f.eks. x1⋅x2 hvis der er flere features).
For eksempel, hvis X oprindeligt har to features: [x1,x2], så får du efter at have anvendt PolynomialFeatures(2, include_bias=False): [x1,x2,x12,x1x2,x22]
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.
Tak for dine kommentarer!