Cum se realizează regresia logistică în Python?



Regresia logistică în Python folosind sklearn pentru a prezice rezultatul determinând relația dintre variabile dependente și una sau mai multe variabile independente.

Regresia logistică în Python este o tehnică de analiză predictivă. De asemenea, este utilizat în învățarea automată pentru probleme de clasificare binară. În acest blog vom parcurge următoarele subiecte pentru a înțelege regresia logistică în Python:

  1. Ce este Regresia?
  2. Regresie logistică în Python
  3. Regresia logistică vs regresia liniară
  4. Cazuri de utilizare
  5. Demonstrație

Puteți consulta, de asemenea, acest tutorial detaliat despre regresia logistică în python cu o demonstrație pentru o mai bună înțelegere sau treceți prin pentru a stăpâni regresia logistică.





Ce este Regresia?

analiza este o tehnică puternică de analiză statistică. A dependent variabila interesului nostru este utilizată pentru a prezice valorile altora variabile independente într-un set de date.

Întotdeauna întâlnim regresia într-un mod intuitiv. Ca și prezicerea vremii folosind setul de date al condițiilor meteorologice din trecut.



Folosește multe tehnici pentru a analiza și prezice rezultatul, dar accentul este pus în principal pe relația dintre variabila dependentă și una sau mai multe variabile independente.

analiza prezice rezultatul într-o variabilă binară care are doar două rezultate posibile.



Regresie logistică în Python

Este o tehnică de analiză a unui set de date care are o variabilă dependentă și una sau mai multe variabile independente pentru a prezice rezultatul într-o variabilă binară, ceea ce înseamnă că va avea doar două rezultate.

Variabila dependentă este categoric în natură. Variabila dependentă este, de asemenea, denumită variabilă țintă iar variabilele independente se numesc predictori .

Regresia logistică este un caz special de regresie liniară în care predicem rezultatul doar într-o variabilă categorică. Acesta prezice probabilitatea evenimentului folosind funcția jurnal.

Noi folosim Funcția / curba sigmoidă pentru a prezice valoarea categorică. Valoarea prag decide rezultatul (câștiga / pierde).

Ecuația de regresie liniară: y = β0 + β1X1 + β2X2…. + βnXn

  • Y reprezintă variabila dependentă care trebuie prezisă.
  • β0 este interceptarea Y, care este în esență punctul de pe linia care atinge axa y.
  • β1 este panta liniei (panta poate fi negativă sau pozitivă în funcție de relația dintre variabila dependentă și variabila independentă.)
  • X reprezintă aici variabila independentă care este utilizată pentru a prezice valoarea noastră dependentă rezultantă.

Funcția sigmoidă: p = 1/1 + e-Da

Aplicați funcția sigmoidă pe ecuația de regresie liniară.

regresie logistică în python-edureka

Ecuația de regresie logistică: p = 1/1 + e- (β0 + β1X1 + β2X2 .... + βnXn)

Să aruncăm o privire asupra diferitelor tipuri de regresie logistică.

Tipuri de regresie logistică

cum funcționează castingul în java
    • Regresie logistică binară - Are doar două rezultate posibile. Exemplu - da sau nu
    • Regresie logistică multinomială - Are trei sau mai multe categorii nominale. Exemplu: pisică, câine, elefant.
    • Regresie logistică ordinală - Are trei sau mai multe categorii ordinale, ceea ce înseamnă că categoriile vor fi într-o ordine. Exemplu - evaluări ale utilizatorilor (1-5).

Regresie logistică Vs liniară

În timp ce regresia liniară poate avea valori posibile infinite, regresia logistică are rezultate certe .

Regresia liniară este utilizată atunci când variabila de răspuns este continuă în natură, dar regresia logistică este utilizată atunci când variabila de răspuns este categorică în natură.

Previzionarea unui inadecvat într-o bancă folosind detaliile tranzacției în trecut este un exemplu de regresie logistică, în timp ce o ieșire continuă, cum ar fi un scor bursier, este un exemplu de regresie liniară.

Cazuri de utilizare

Următoarele sunt cazurile de utilizare în care putem folosi regresia logistică.

Prognoză meteo

Predicțiile meteo sunt rezultatul unei regresii logice. Aici, analizăm datele din rapoartele meteo anterioare și prezicem rezultatul posibil pentru o anumită zi. Dar regresia logică ar prezice doar date categorice, ca și cum ar ploua sau nu.

Boala determinantă

Noi putemutilizareregresie logică cu ajutorul istoricului medical al pacientului pentru a prezice dacă boala este pozitivă sau negativă în orice caz.

Să luăm un eșantion de set de date pentru a construi un model de predicție folosind regresia logistică.

Demo

Vom construi un model de predicțiefolosindregresie logică în Python cu ajutoruldeun set de date,in acestvom parcurge următorii pași pentru a realiza o regresie logică.

Colectarea datelor

Primul pas pentru implementarea regresiei logistice este colectarea datelor. Vom încărca fișierul CSV care conține setul de date în programele folosind panda. Folosim datele NBA pentru construirea modelului de predicție pentru a prezice posibilitatea unui joc acasă sau în deplasare, analizând relația dintre datele relevante.

import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') print (df.head (5))

Veți obține toate datele într-un format lizibil pentru o analiză mai ușoară. Și apoi puteți determina variabilele dependente și independente pentru modelul dvs.

Analiza datelor

Setul de date este analizat pentru a determina relația dintre variabile. Prin crearea de grafice diferite pentru a verifica relația dintre variabile.

sns.countplot („Acasă”, nuanță = „WINorLOSS”, date = df) plt.show ()

Mai sus este relația dintre procentul de câștig / pierdere în ceea ce privește jocul acasă / în deplasare. Sîn mod similarputem trasa graficul relației dintre alte intrări relevante din date.

care este diferența dintre java și c ++

Lupta de date

Setul de date este modificat în funcție de variabila țintă. Vom elimina toate valorile nule și valorile șirului din DataFrame.

print (df.isnull (). sum ())

Vom verifica toate datele irelevante, cum ar fi valorile nule și valorile care nu vor fi necesare în timpul construirii modelului de predicție. Dacă nu există valori nule în setul de date NBA pe care îl folosim, vom continua cu împărțirea datelor.

Date de testare și instruire

Pentru performanța modelului, datele sunt împărțite în datele de testare și datele trenului. Datele sunt împărțite folosind train_test_split . Datele de aici sunt împărțite în proporția 70:30.

Acum, pentru predicție model funcția de regresie logistică este implementată prin importarea modelului de regresie logistică în modulul sklearn.

Modelul se potrivește apoi pe tren, folosind funcția de potrivire. După aceasta, predicția se efectuează folosind funcția de predicție.

din sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import classification_report from sklearn.metrics import confusion_matrix, accurate_score x = df.drop ('Home', axis = 1) y = df ['Home'] x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.33, random_state = 1) logmodel = LogisticRegression () logmodel.fit (x_train, y_train) predictions = logmodel.predict (x_test) print (classification_report) (y_t) print (confusion_matrix (y_test, predictions)) print (accur_score (y_test, predictions))

Raport de clasificare:

Raportul de clasificare afișează Precizie , Recall, F1 și Asistență scoruri pentru model.

Precizie scor înseamnă nivelul până la care predicția făcută de model este precisă. Precizia pentru un joc de acasă este 0,62 iar pentru jocul în deplasare este 0,58 .

Reamintim este suma până la care modelul poate prezice rezultatul. Reamintirea pentru un joc de acasă este 0,57 iar pentru un joc în deplasare este 0,64 . Scorurile F1 și Asistență reprezintă cantitatea de date testate pentru predicții. În setul de date NBA, datele testate pentru jocul de acasă sunt 1662 iar pentru jocul în deplasare este 1586 .

Matricea de confuzie:

Matricea de confuzie este un tabel care descrie performanța unui model de predicție. O matrice de confuzie conține valorile reale și valorile prezise. putem folosi aceste valori pentru a calcula scorul de precizie al modelului.

Harta de căldură a matricei de confuzie:

Să trasăm o hartă de căldură a matricei de confuzie folosind seaborn și pentru a vizualiza modelul de predicție pe care l-am construit. Pentru a trasa o hartă de căldură, este necesară următoarea sintaxă.

sns.heatmap (pd.DataFrame (confusion_matrix (y_test, predictions))) plt.show ()

Privind harta de căldură, putem concluziona următoarele:

  • Din toate predicțiile, clasificatorul a prezis da pentru totalul de 1730 de ori, din care 1012 au fost da.
  • din toate predicțiile, clasificatorul a prezis nu pentru totalul de 1518 ori, din care 944 au fost nr.

Cu această analiză a matricei de confuzie putem concluziona scorul de precizie pentru modelul nostru de predicție.

Scorul de precizie:

Scorul de precizie este procentul de precizie al predicțiilor făcute de model. Pentru modelul nostru, scorul de precizie este de 0,60, ceea ce este considerabil destul de precis. Dar cu cât scorul de precizie este mai eficient, este modelul de predicție. Trebuie să vizezi întotdeauna un scor de precizie mai mare pentru un model de predicție mai bun.

Urmând pașii discutați mai sus, am prezis posibilitatea unui joc acasă / în deplasare folosind setul de date NBA. După analiza raportului de clasificare putem presupune posibilitatea unui joc acasă / în deplasare.

În acest blog am discutat despre regresia logistică în concepte python, în ce măsură este diferită de abordarea liniară. De asemenea, am acoperit o demonstrație folosind setul de date NBA. Pentru mai multe informații și practică, puteți utiliza un set de date la alegere și urmați pașii discutați pentru a implementa regresia logistică în Python.

De asemenea, verificați diferitele bloguri Data-Science de pe platforma edureka pentru a stăpâni cercetătorul în date.

Dacă doriți să învățați Python și să construiți o carieră în știința datelor, verificați interactivul nostru live-online aici, acesta vine cu suport 24 * 7 pentru a vă ghida pe toată perioada de învățare.
Ai o întrebare? Vă rugăm să o menționați în comentarii și vă vom răspunde.