Precondiții: Regresie liniară
Acest articol discută elementele de bază ale regresiei logistice și implementarea sa în Python. Regresia logistică este, în principiu, un algoritm de clasificare supravegheat. Într-o problemă de clasificare, variabila țintă (sau de ieșire), y, poate lua numai valori discrete pentru un set dat de caracteristici (sau intrări), X.
Contrazicând credința populară, regresia logistică ESTE un model de regresie. Modelul construiește un model de regresie pentru a prezice probabilitatea ca o anumită intrare de date să aparțină categoriei numerotate ca „1”. La fel cum regresia liniară presupune că datele urmează o funcție liniară, regresia logistică modelează datele folosind funcția sigmoidă.
Regresia logistică devine o tehnică de clasificare doar atunci când este adus în scenă un prag de decizie. Stabilirea valorii pragului este un aspect foarte important al regresiei logistice și depinde de problema de clasificare în sine.
Decizia privind valoarea pragului este afectată în mare măsură de valorile de precizie și de rechemare. În mod ideal, dorim ca atât precizia, cât și rechemarea să fie 1, dar acest lucru este rareori cazul. În cazul unui compromis precizie-rechemare, folosim următoarele argumente pentru a decide asupra valorii pragului:-
1. Precizie scăzută/rechemare ridicată: În aplicațiile în care dorim să reducem numărul de falsuri negative fără a reduce neapărat numărul de falsuri pozitive, alegem o valoare de decizie care are o valoare scăzută a Precision sau o valoare ridicată a Recall. De exemplu, într-o aplicație de diagnosticare a cancerului, nu dorim ca nici un pacient afectat să fie clasificat ca neafectat, fără să acordăm prea multă atenție dacă pacientul este diagnosticat greșit cu cancer. Acest lucru se datorează faptului că, absența cancerului poate fi detectată de alte afecțiuni medicale, dar prezența bolii nu poate fi detectată la un candidat deja respins.
2. Precizie ridicată/Recall scăzut: În aplicațiile în care dorim să reducem numărul de falsuri pozitive fără a reduce neapărat numărul de falsuri negative, alegem o valoare de decizie care are o valoare ridicată a Precision sau o valoare scăzută a Recall. De exemplu, dacă clasificăm clienții dacă vor reacționa pozitiv sau negativ la o reclamă personalizată, dorim să fim absolut siguri că clientul va reacționa pozitiv la reclamă, deoarece, în caz contrar, o reacție negativă poate cauza o pierdere de vânzări potențiale din partea clientului.
În funcție de numărul de categorii, regresia logistică poate fi clasificată astfel:
- binomial: variabila țintă poate avea doar 2 tipuri posibile: „0” sau „1” care pot reprezenta „victorie” vs. „pierdere”, „reușită” vs. „eșec”, „mort” vs. „viu”, etc.
- multinomial: variabila țintă poate avea 3 sau mai multe tipuri posibile care nu sunt ordonate (adică tipurile nu au semnificație cantitativă) cum ar fi „boala A” vs. „boala B” vs. „boala C”.
- ordinal: se ocupă de variabilele țintă cu categorii ordonate. De exemplu, un scor la un test poate fi clasificat ca: „foarte slab”, „slab”, „bun”, „foarte bun”. Aici, fiecărei categorii i se poate atribui un scor de tipul 0, 1, 2, 3.
În primul rând, explorăm cea mai simplă formă de regresie logistică, și anume regresia logistică binomială.
Regresia logistică binomială
Considerăm un exemplu de set de date care corelează numărul de ore de studiu cu rezultatul unui examen. Rezultatul poate lua doar două valori, și anume admis(1) sau respins(0):
Hori(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 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Deci, avem
i.e. y este o variabilă țintă categorială care poate lua doar două tipuri posibile: „0” sau „1”.
Pentru a generaliza modelul nostru, presupunem că:
- Setul de date are „p” variabile caracteristice și „n” observații.
- Matricea caracteristicilor este reprezentată ca:
Aici, denotă valorile caracteristicilor pentru observație.
Aici, păstrăm convenția de a lăsa = 1. (Continuați să citiți, veți înțelege logica în câteva momente). - Observația, , poate fi reprezentată ca:
- reprezintă răspunsul prezis pentru observație, adică . Formula pe care o folosim pentru calcul se numește ipoteză.
Dacă ați parcurs Regresia liniară, ar trebui să vă amintiți că în Regresia liniară, ipoteza pe care am folosit-o pentru predicție a fost:
unde, sunt coeficienții de regresie.
Să fie matricea/vectorul coeficienților de regresie, fie:
Atunci, într-o formă mai compactă,
Motivul pentru a lua = 1 este destul de clar acum.
Am avut nevoie să facem un produs matricial, dar nu a existat nici un
actual înmulțit cu în formula inițială a ipotezei. Deci, am definit = 1.
Acum, dacă încercăm să aplicăm Regresia liniară la problema de mai sus, este probabil să obținem valori continue folosind ipoteza pe care am discutat-o mai sus. De asemenea, nu are sens să luăm valori mai mari decât 1 sau mai mici decât 0.
Deci, se fac unele modificări la ipoteza pentru clasificare:
unde,
se numește funcția logistică sau funcția sigmoidă.
Iată un grafic care arată g(z):
Potem deduce din graficul de mai sus că:
- g(z) tinde spre 1 pe măsură ce
- g(z) tinde spre 0 pe măsură ce
- g(z) este întotdeauna mărginită între 0 și 1
Acum, acum, putem defini probabilitățile condiționate pentru 2 etichete (0 și 1) pentru observație ca:
O putem scrie mai compact ca:
Acum, definim un alt termen, verosimilitatea parametrilor ca:
Verosimilitatea nu este altceva decât probabilitatea de date (exemple de antrenament), având în vedere un model și valori specifice ale parametrilor (aici, ). Ea măsoară suportul oferit de date pentru fiecare valoare posibilă a lui . O obținem prin înmulțirea tuturor pentru date .
Și pentru calcule mai ușoare, luăm log verosimilitatea:
Funcția de cost pentru regresia logistică este proporțională cu inversul verosimilității parametrilor. Prin urmare, putem obține o expresie pentru funcția de cost, J, folosind ecuația logaritmică a verosimilității ca:
și scopul nostru este să estimăm astfel încât funcția de cost să fie minimizată !!!
Utilizând algoritmul de coborâre a gradientului
În primul rând, luăm derivatele parțiale ale lui w.r.t fiecare pentru a deriva regula de coborâre a gradientului stocastic (prezentăm aici doar valoarea finală derivată):
Aici, y și h(x) reprezintă vectorul răspuns și, respectiv, vectorul răspuns prezis. De asemenea, este vectorul care reprezintă valorile de observație pentru caracteristică.
Acum, pentru a obține min ,
unde se numește rata de învățare și trebuie să fie setată explicit.
Veziți implementarea python a tehnicii de mai sus pe un set de date de probă (descărcați-l de aici):
Nota: Gradient descent este una dintre multele modalități de a estima .
Basic, aceștia sunt algoritmi mai avansați care pot fi executați cu ușurință în Python, odată ce ați definit funcția de cost și gradienții dvs. Acești algoritmi sunt:
- BFGS(Algoritmul Broyden-Fletcher-Goldfarb-Shanno)
- L-BFGS(Ca BFGS, dar folosește o memorie limitată)
- Gradient conjugat
Avantaje/dezvantaje ale utilizării oricăruia dintre acești algoritmi față de Gradient descent:
- Avantaje
- Nu trebuie să alegeți rata de învățare
- De multe ori rulează mai repede (nu întotdeauna este cazul)
- Puteți aproxima numeric gradientul (nu întotdeauna funcționează bine)
- .
- Dezavantaje
- Mai complexă
- Mai mult ca o cutie neagră dacă nu învățați particularitățile
Regresie logistică multinomială
În Regresie logistică multinomială, variabila de ieșire poate avea mai mult de două ieșiri discrete posibile. Luați în considerare setul de date Digit. Aici, variabila de ieșire este valoarea cifrei, care poate lua valori din (0, 12, 3, 4, 5, 6, 7, 8, 9).
Dată mai jos este implementarea Regresiei Logistice Multinomiale folosind scikit-learn pentru a face predicții pe setul de date cu cifre.
Logistic Regression model accuracy(in %): 95.6884561892
În cele din urmă, iată câteva aspecte asupra regresiei logistice asupra cărora să medităm:
- Nu presupune o relație liniară între variabila dependentă și variabilele independente, dar presupune o relație liniară între logitul variabilelor explicative și răspuns.
- Variabilele independente pot fi chiar termenii de putere sau alte transformări neliniare ale variabilelor independente originale.
- Variabila dependentă NU trebuie să fie distribuită în mod normal, dar de obicei presupune o distribuție dintr-o familie exponențială (de exemplu, binomială, Poisson, multinomială, normală,…); regresia logistică binară presupune o distribuție binomială a răspunsului.
- Nu este necesar să fie satisfăcută omogenitatea varianței.
- Erorii trebuie să fie independenți, dar NU distribuiți normal.
- Utilizează estimarea de maximă verosimilitate (MLE) mai degrabă decât cea a celor mai mici pătrate obișnuite (OLS) pentru a estima parametrii și, prin urmare, se bazează pe aproximări pentru eșantioane mari.
Acest articol este contribuit de Nikhil Kumar. Dacă vă place GeeksforGeeks și doriți să contribuiți, puteți, de asemenea, să scrieți un articol folosind contribute.geeksforgeeks.org sau să trimiteți articolul dumneavoastră prin poștă la [email protected]. Vedeți articolul dvs. apărând pe pagina principală GeeksforGeeks și ajutați alți Geeks.
.