Hvordan utføre logistisk regresjon i Python?



Logistisk regresjon i Python ved hjelp av sklearn for å forutsi resultatet ved å bestemme forholdet mellom avhengige og en eller flere uavhengige variabler.

Logistisk regresjon i Python er en prediktiv analyseteknikk. Den brukes også i maskinlæring for binære klassifiseringsproblemer. I denne bloggen vil vi gå gjennom følgende emner for å forstå logistisk regresjon i Python:

  1. Hva er regresjon?
  2. Logistisk regresjon i Python
  3. Logistisk regresjon vs lineær regresjon
  4. Bruk tilfeller
  5. Demonstrasjon

Du kan også henvise til denne detaljerte opplæringen om logistisk regresjon i python med en demonstrasjon for bedre forståelse eller gå gjennom for å mestre logistisk regresjon.





Hva er regresjon?

analyse er en kraftig statistisk analyseteknikk. EN avhengig variabel av vår interesse brukes til å forutsi verdiene til andre uavhengige variabler i et datasett.

Vi kommer over regresjon på en intuitiv måte hele tiden. Som å forutsi været ved hjelp av datasettet om værforholdene tidligere.



Den bruker mange teknikker for å analysere og forutsi resultatet, men hovedvekten er hovedsakelig på forholdet mellom avhengig variabel og en eller flere uavhengige variabler.

analyse forutsier utfallet i en binær variabel som bare har to mulige utfall.



Logistisk regresjon i Python

Det er en teknikk for å analysere et datasett som har en avhengig variabel og en eller flere uavhengige variabler for å forutsi resultatet i en binær variabel, noe som betyr at det bare vil ha to utfall.

Den avhengige variabelen er kategorisk i naturen. Avhengig variabel blir også referert til som målvariabel og de uavhengige variablene kalles prediktorer .

Logistisk regresjon er et spesielt tilfelle av lineær regresjon der vi bare forutsier utfallet i en kategorisk variabel. Det forutsier sannsynligheten for at hendelsen bruker loggfunksjonen.

Vi bruker Sigmoid funksjon / kurve å forutsi den kategoriske verdien. Terskelverdien avgjør utfallet (vinn / tap).

Lineær regresjonsligning: y = β0 + β1X1 + β2X2…. + βnXn

  • Y står for den avhengige variabelen som må forutsies.
  • β0 er Y-skjæringspunktet, som i utgangspunktet er punktet på linjen som berører y-aksen.
  • β1 er skråningen på linjen (hellingen kan være negativ eller positiv, avhengig av forholdet mellom den avhengige variabelen og den uavhengige variabelen.)
  • X representerer her den uavhengige variabelen som brukes til å forutsi vår resulterende avhengige verdi.

Sigmoid-funksjon: p = 1/1 + e-Y

Bruk sigmoid-funksjon på den lineære regresjonsligningen.

logistisk regresjon i python-edureka

Logistisk regresjonsligning: p = 1/1 + e- (β0 + β1X1 + β2X2…. + βnXn)

La oss ta en titt på forskjellige typer logistisk regresjon.

Typer av logistisk regresjon

hvordan lage loggfiler i java
    • Binær logistisk regresjon - Den har bare to mulige utfall. Eksempel - ja eller nei
    • Multinomial logistisk regresjon - Den har tre eller flere nominelle kategorier. Eksempel - katt, hund, elefant.
    • Ordinær logistisk regresjon - Den har tre eller flere ordinære kategorier, ordinær som betyr at kategoriene vil være i en rekkefølge. Eksempel - brukervurderinger (1-5).

Lineær mot logistisk regresjon

Mens lineær regresjon kan ha uendelige mulige verdier, logistisk regresjon har bestemte utfall .

Lineær regresjon brukes når responsvariabelen er kontinuerlig, men logistisk regresjon brukes når responsvariabelen er kategorisk.

Å forutsi et mislighold i en bank ved hjelp av tidligere transaksjonsdetaljer er et eksempel på logistisk regresjon, mens en kontinuerlig produksjon som et aksjemarkedsresultat er et eksempel på lineær regresjon.

Bruk tilfeller

Følgende er brukstilfellene der vi kan bruke logistisk regresjon.

Værforutsigelse

Værspådommer er et resultat av logisk regresjon. Her analyserer vi dataene fra de forrige værmeldingene og forutsier det mulige resultatet for en bestemt dag. Men logisk regresjon vil bare forutsi kategoriske data, som om det kommer til å regne eller ikke.

Bestemme sykdom

Vi kanbruklogisk regresjon ved hjelp av pasientens sykehistorie for å forutsi om sykdommen i alle fall er positiv eller negativ.

La oss ta et datasett for å bygge en prediksjonsmodell ved hjelp av logistisk regresjon.

Demo

Vi skal bygge en prediksjonsmodellved hjelp avlogisk regresjon i Python med hjelpenavet datasett,i dettevi skal dekke følgende trinn for å oppnå logisk regresjon.

Samle data

Det aller første trinnet for å implementere den logistiske regresjonen er å samle inn dataene. Vi vil laste inn csv-filen som inneholder datasettet i programmene ved hjelp av pandaene. Vi bruker NBA-dataene for å bygge prediksjonsmodellen for å forutsi muligheten for et hjemmekamp eller bortekamp, ​​ved å analysere forholdet mellom relevante data.

importer pandaer som pd import numpy som np importer seaborn som sns importer matplotlib.pyplot som plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') skriv ut (df.head (5))

Du vil få alle dataene i et lesbart format for enklere analyse. Og så kan du bestemme de avhengige og uavhengige variablene for modellen din.

Analyserer data

Datasettet analyseres for å bestemme forholdet mellom variablene. Ved å lage forskjellige plott for å kontrollere forholdet mellom variablene.

sns.countplot ('Hjem', hue = 'WINorLOSS', data = df) plt.show ()

Ovenfor er forholdet mellom vinn / tap-prosent i forhold til hjemme- / bortekampen. Similarlyvi kan plotte grafen over forholdet mellom andre relevante oppføringer i dataene.

Data Wrangling

Datasettet modifiseres i henhold til målvariabelen. Vi vil eliminere alle nullverdiene og strengverdiene i tillegg fra DataFrame.

skriv ut (df.isnull (). sum ())

Vi vil se etter alle irrelevante data som nullverdier og verdiene som ikke vil være nødvendige når vi bygger prediksjonsmodellen. Hvis det ikke er nullverdier i NBA-datasettet vi bruker, fortsetter vi med å dele dataene.

Test og trene data

For ytelsen til modellen blir dataene delt inn i testdataene og togdataene. Dataene deles ved hjelp av train_test_split . Dataene her er delt i forholdet 70:30.

Nå, for modellforutsigelse den logistiske regresjonsfunksjonen implementeres ved å importere den logistiske regresjonsmodellen i sklearn-modulen.

Modellen blir deretter passet på togsettet ved hjelp av fit-funksjonen. Etter dette utføres prediksjonen ved hjelp av prediksjonsfunksjonen.

sqoop import fra oracle til hdfs
fra sklearn.model_selection import train_test_split fra sklearn.linear_model import LogisticRegression fra sklearn.metrics import klassifisering_rapport fra sklearn.metrics import confusion_matrix, accuracy_score x = df.drop ('Hjem', akse = 1) y = df ['Hjem'] 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 (klassifikasjon_rapport (y_test, skriv ut (confusion_matrix (y_test, predictions)) print (accuracy_score (y_test, predictions))

Klassifiseringsrapport:

Klassifiseringsrapporten viser Presisjon , Recall, F1 og Support skårer for modellen.

Presisjon poengsum betyr nivået opp til hvilket prediksjonen fra modellen er presis. Presisjonen for et hjemmekamp er 0,62 og for bortekampen er 0,58 .

Minnes er hvor mye modellen kan forutsi utfallet. Tilbakekalling for et hjemmekamp er 0,57 og for en bortekamp er 0,64 . F1 og Support score er mengden data som er testet for spådommene. I NBA-datasettet er dataene testet for hjemmekamp 1662 og for bortekampen er 1586 .

Forvirringsmatrise:

Forvirringsmatrise er en tabell som beskriver ytelsen til en prediksjonsmodell. En forvirringsmatrise inneholder de faktiske verdiene og de forutsagte verdiene. vi kan bruke disse verdiene til å beregne nøyaktighetspoengene til modellen.

Forvirringsmatrise varmekart:

Kan plotte et varmekart over forvirringsmatrisen ved bruk av seaborn og å visualisere prediksjonsmodellen som vi har bygget. For å plotte et varmekart er følgende syntaks nødvendig.

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

Ved å se på varmekartet kan vi konkludere med følgende:

  • Av alle spådommene forutslo klassifisereren ja for totalt 1730 ganger, hvorav 1012 var faktiske ja.
  • av alle spådommer forutslo klassifikatoren nei for totalt 1518 ganger, hvorav 944 var faktiske nr.

Med denne analysen av forvirringsmatrisen kan vi konkludere med nøyaktighetspoeng for vår prediksjonsmodell.

Nøyaktighetspoeng:

Nøyaktighetspoeng er prosentandelen av nøyaktighet av spådommene som modellen gir. For vår modell er nøyaktighetspoengene 0,60, noe som er betydelig ganske nøyaktig. Men jo mer nøyaktighetspoeng jo effektiv er din prediksjonsmodell. Du må alltid sikte på en høyere nøyaktighetspoeng for en bedre prediksjonsmodell.

Ved å følge trinnene som er diskutert ovenfor, har vi spådd muligheten for et hjemme- / bortekamp ved hjelp av NBA-datasettet. Etter å ha analysert klassifiseringsrapporten kan vi anta muligheten for hjemme- / bortekamp.

I denne bloggen har vi diskutert den logistiske regresjonen i pythonbegreper, hvordan den er forskjellig fra den lineære tilnærmingen. Vi har også dekket en demonstrasjon ved hjelp av NBA-datasettet. For mer innsikt og praksis kan du bruke et datasett du ønsker og følge trinnene som er diskutert for å implementere logistisk regresjon i Python.

Sjekk også de forskjellige Data-Science-bloggene på edureka-plattformen for å mestre datavitenskapsmannen i deg.

Hvis du ønsker å lære Python og bygge en karriere innen datavitenskap, kan du sjekke ut vårt interaktive live-online her, som kommer med 24 * 7 støtte for å veilede deg gjennom hele læringsperioden.
Har du spørsmål? Vennligst nevn det i kommentarene, så kommer vi tilbake til deg.