Beslutningsgrænse
Lad os visualisere resultaterne af logistisk regression. Overvej følgende eksempel med to funktioner:
Når en logistisk regression er opbygget, kan en beslutningsgrænse visualiseres. Den viser hvert klasses område, hvor nye observationer forudsiges som den pågældende klasse. For eksempel ses her beslutningsgrænsen for logistisk regression anvendt på ovenstående data:
Det kan observeres, at linjen her adskiller de to klasser perfekt. Når dette sker, kaldes datasættet lineært separabelt. Dette er dog ikke altid tilfældet. Hvad nu hvis datasættet så således 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å det er den bedste forudsigelse, vi kan opnå.
Men husk, at Logistic Regression er afledt af Linear Regression, som har en løsning på problemet med, at modellen er for simpel. Denne løsning er en Polynomial 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 Polynomial 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 anvendelse af PolynomialFeatures(2, include_bias=False): [x1,x2,x12,x1x2,x22]
Dette gør det muligt for modeller som Logistic Regression at opfange ikke-lineære sammenhænge og skabe 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
Fantastisk!
Completion rate forbedret til 3.33
Beslutningsgrænse
Stryg for at vise menuen
Lad os visualisere resultaterne af logistisk regression. Overvej følgende eksempel med to funktioner:
Når en logistisk regression er opbygget, kan en beslutningsgrænse visualiseres. Den viser hvert klasses område, hvor nye observationer forudsiges som den pågældende klasse. For eksempel ses her beslutningsgrænsen for logistisk regression anvendt på ovenstående data:
Det kan observeres, at linjen her adskiller de to klasser perfekt. Når dette sker, kaldes datasættet lineært separabelt. Dette er dog ikke altid tilfældet. Hvad nu hvis datasættet så således 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å det er den bedste forudsigelse, vi kan opnå.
Men husk, at Logistic Regression er afledt af Linear Regression, som har en løsning på problemet med, at modellen er for simpel. Denne løsning er en Polynomial 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 Polynomial 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 anvendelse af PolynomialFeatures(2, include_bias=False): [x1,x2,x12,x1x2,x22]
Dette gør det muligt for modeller som Logistic Regression at opfange ikke-lineære sammenhænge og skabe 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!