Forudsætninger: Denne artikel omhandler de grundlæggende principper for logistisk regression og dens implementering i Python. Logistisk regression er grundlæggende en superviseret klassifikationsalgoritme. I et klassifikationsproblem kan målvariablen(eller output), y, kun antage diskrete værdier for et givet sæt funktioner(eller input), X.
I modsætning til hvad mange tror, ER logistisk regression en regressionsmodel. Modellen opbygger en regressionsmodel for at forudsige sandsynligheden for, at en given dataindgang hører til den kategori, der er nummereret som “1”. Ligesom lineær regression forudsætter, at dataene følger en lineær funktion, modellerer logistisk regression dataene ved hjælp af sigmoidfunktionen.
Logistisk regression bliver først en klassifikationsteknik, når der kommer en beslutningstærskel ind i billedet. Fastsættelsen af tærskelværdien er et meget vigtigt aspekt af logistisk regression og afhænger af selve klassifikationsproblemet.
Beslutningen om værdien af tærskelværdien påvirkes i høj grad af værdierne for præcision og recall. Ideelt set ønsker vi, at både præcision og tilbagekaldelse skal være 1, men det er sjældent tilfældet. I tilfælde af en afvejning mellem præcision og tilbagekaldelse bruger vi følgende argumenter til at træffe beslutning om tærskelværdien:-
1. Lav præcision/høj genkaldelse: I applikationer, hvor vi ønsker at reducere antallet af falske negative svar uden nødvendigvis at reducere antallet af falske positive svar, vælger vi en beslutningsværdi, som har en lav værdi for præcision eller en høj værdi for genkaldelse. I en applikation til kræftdiagnostik ønsker vi f.eks. ikke, at en patient, der er ramt af kræft, klassificeres som ikke ramt uden at tage hensyn til, om patienten fejlagtigt er blevet diagnosticeret med kræft. Dette skyldes, at fraværet af kræft kan påvises ved hjælp af yderligere medicinske sygdomme, men tilstedeværelsen af sygdommen kan ikke påvises hos en allerede afvist kandidat.
2. Høj præcision/lav tilbagekaldelse: I applikationer, hvor vi ønsker at reducere antallet af falske positive svar uden nødvendigvis at reducere antallet af falske negative svar, vælger vi en beslutningsværdi, som har en høj værdi for præcision eller en lav værdi for genkaldelse. Hvis vi f.eks. klassificerer kunderne efter, om de vil reagere positivt eller negativt på en personaliseret reklame, ønsker vi at være helt sikre på, at kunden vil reagere positivt på reklamen, da en negativ reaktion ellers kan medføre et tab af potentielt salg fra kunden.
Baseret på antallet af kategorier kan logistisk regression klassificeres som:
- binomial: målvariabel kan kun have 2 mulige typer: “
- multinomial: målvariablen kan have tre eller flere mulige typer, som ikke er ordnede (dvs. typerne har ingen kvantitativ betydning), f.eks. “sygdom A” vs. “sygdom B” vs. “sygdom C”.
- ordinal: målvariable med ordnede kategorier. F.eks. kan en testscore kategoriseres som: “meget dårlig”, “dårlig”, “god”, “god”, “meget god”. Her kan hver kategori gives en score som 0, 1, 2, 3.
Først udforsker vi den enkleste form for logistisk regression, nemlig binomial logistisk regression.
Binomial logistisk regression
Opnå et eksempeldatasæt, der kortlægger antallet af studietimer med resultatet af en eksamen. Resultatet kan kun antage to værdier, nemlig bestået(1) eller ikke bestået(0):
Hours(x) | 0,50 | 0,75 | 1,00 | 1,25 | 1,50 | 1,75 | 2.00 | 2.25 | 2.50 | 2.75 | 3.00 | 3.25 | 3.50 | 3.75 | 4.00 | 4.25 | 4.50 | 4.75 | 5.00 | 5.50 | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Pass(y) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Så, har vi
i.e. y er en kategorisk målvariabel, som kun kan antage to mulige typer: “0” eller “1”.
For at generalisere vores model antager vi, at:
- Datasættet har “p” funktionsvariabler og “n” observationer.
- Funktionen matrix er repræsenteret som:
Her angiver værdierne af funktion for observation.
Her holder vi konventionen om at lade = 1. (Fortsæt med at læse, du vil forstå logikken om et øjeblik). - Observationen, , kan repræsenteres som:
- repræsenterer det forudsagte svar for observationen, dvs. . Den formel, vi bruger til at beregne, kaldes hypotese.
Hvis du har gennemgået lineær regression, bør du huske, at i lineær regression var den hypotese, vi brugte til forudsigelse:
hvor , er regressionskoefficienterne.
Lad regressionskoefficientmatrix/vektor, være:
Så, i en mere kompakt form,
Grunden til at tage = 1 er ret klar nu.
Vi havde brug for at lave et matrixprodukt, men der var ingen
aktuel multipliceret til i den oprindelige hypoteseformel. Så vi definerede = 1.
Nu, hvis vi forsøger at anvende lineær regression på ovenstående problem, vil vi sandsynligvis få kontinuerlige værdier ved hjælp af den hypotese, vi diskuterede ovenfor. Det giver heller ikke mening for at tage værdier større end 1 eller mindre end 0.
Så der foretages nogle ændringer i hypotesen til klassificering:
hvor,
kaldes logistisk funktion eller sigmoidfunktionen.
Her er et plot, der viser g(z):
Vi kan udlede af ovenstående graf, at:
- g(z) tenderer mod 1 som
- g(z) tenderer mod 0 som
- g(z) er altid afgrænset mellem 0 og 1
Så nu kan vi definere betingede sandsynligheder for 2 etiketter(0 og 1) for observationen som:
Vi kan skrive det mere kompakt som:
Nu definerer vi et andet begreb, sandsynlighed for parametre som:
Sandsynlighed er intet andet end sandsynligheden for data(træningseksempler), givet en model og specifikke parameterværdier(her, ). Den måler den støtte, som dataene giver for hver mulig værdi af . Vi opnår den ved at gange alle for givet .
Og for at gøre beregningerne nemmere tager vi log sandsynlighed:
Kostfunktionen for logistisk regression er proportional med invers af sandsynlighed for parametre. Derfor kan vi få et udtryk for omkostningsfunktionen, J ved hjælp af log likelihood-ligningen som:
og vores mål er at estimere, så omkostningsfunktionen minimeres !!
Ved hjælp af Gradient descent algoritme
Først tager vi partielle afledninger af w.r.t hver for at udlede den stokastiske gradientafstigningsregel(vi præsenterer kun den endelige afledte værdi her):
Her repræsenterer y og h(x) henholdsvis responsvektoren og den forudsagte responsvektor(hhv.) Er også vektoren, der repræsenterer observationsværdierne for funktionen.
Nu, for at få min ,
hvor kaldes læringshastighed og skal indstilles eksplicit.
Lad os se python-implementeringen af ovenstående teknik på et eksempeldatasæt (download det her):
Note: Gradient descent er en af de mange måder at estimere .
Grundlæggende er disse mere avancerede algoritmer, som nemt kan køres i Python, når du har defineret din omkostningsfunktion og dine gradienter. Disse algoritmer er:
- BFGS(Broyden-Fletcher-Goldfarb-Shanno algoritme)
- L-BFGS(Ligesom BFGS men bruger begrænset hukommelse)
- Conjugate Gradient
For- og ulemper ved at bruge en af disse algoritmer frem for Gradient descent:
- Fordele
- Har ikke brug for at vælge indlæringshastighed
- Kører ofte hurtigere (ikke altid tilfældet)
- Kan numerisk tilnærme gradienten for dig (fungerer ikke altid godt)
- Mere kompleks
- Mere af en sort boks, medmindre du lærer de specifikke detaljer
Multinomial logistisk regression
I Multinomial logistisk regression, kan udgangsvariablen have mere end to mulige diskrete udgange. Overvej datasættet med tal. Her er udgangsvariablen cifferværdien, som kan tage værdier ud af (0, 12, 3, 4, 4, 5, 6, 7, 8, 9).
Nedenstående er implementeringen af Multinomial Logisitc Regression ved hjælp af scikit-learn til at foretage forudsigelser på digit datasæt.
Logistic Regression model accuracy(in %): 95.6884561892
Sidst er her nogle punkter om logistisk regression at tænke over:
- Antager IKKE en lineær sammenhæng mellem den afhængige variabel og de uafhængige variabler, men den antager en lineær sammenhæng mellem logit af de forklarende variabler og svaret.
- Independente variabler kan endda være potenstermer eller nogle andre ikke-lineære transformationer af de oprindelige uafhængige variabler.
- Den afhængige variabel behøver IKKE at være normalfordelt, men den antager typisk en fordeling fra en eksponentiel familie (f.eks. binomial, Poisson, multinomial, normal, …); binær logistisk regression antager binomial fordeling af responset.
- Den homogene varians behøver IKKE at være opfyldt.
- Fejlene skal være uafhængige, men IKKE normalfordelte.
- Den anvender maximum likelihood estimation (MLE) i stedet for ordinary least squares (OLS) til at estimere parametrene, og er således afhængig af approksimationer af store stikprøver.
Denne artikel er bidraget af Nikhil Kumar. Hvis du kan lide GeeksforGeeks og gerne vil bidrage, kan du også skrive en artikel via contribute.geeksforgeeks.org eller sende din artikel på mail til [email protected]. Du kan se din artikel blive vist på GeeksforGeeks’ hovedside og hjælpe andre nørder.