Hvordan udføres logistisk regression i Python?



Logistisk regression i Python ved hjælp af sklearn til at forudsige resultatet ved at bestemme forholdet mellem afhængige og en eller flere uafhængige variabler.

Logistisk regression i Python er en forudsigende analyseteknik. Det bruges også i Machine Learning til binære klassificeringsproblemer. I denne blog gennemgår vi følgende emner for at forstå logistisk regression i Python:

  1. Hvad er regression?
  2. Logistisk regression i Python
  3. Logistisk regression vs lineær regression
  4. Brug sager
  5. Demonstration

Du kan også henvise til denne detaljerede vejledning om logistisk regression i python med en demonstration for en bedre forståelse eller gennemgå at mestre logistisk regression.





Hvad er regression?

analyse er en stærk statistisk analyseteknik. EN afhængig variabel af vores interesse bruges til at forudsige andres værdier uafhængige variabler i et datasæt.

Vi støder på regression på en intuitiv måde hele tiden. Som at forudsige vejret ved hjælp af datasættet over vejrforholdene i fortiden.



Det bruger mange teknikker til at analysere og forudsige resultatet, men der lægges vægt på hovedsageligt forholdet mellem afhængig variabel og en eller flere uafhængige variabler.

analyse forudsiger resultatet i en binær variabel, der kun har to mulige resultater.



Logistisk regression i Python

Det er en teknik til at analysere et datasæt, der har en afhængig variabel og en eller flere uafhængige variabler for at forudsige resultatet i en binær variabel, hvilket betyder, at det kun har to resultater.

Den afhængige variabel er kategorisk i naturen. Afhængig variabel kaldes også målvariabel og de uafhængige variabler kaldes forudsigere .

Logistisk regression er et specielt tilfælde af lineær regression, hvor vi kun forudsiger resultatet i en kategorisk variabel. Det forudsiger sandsynligheden for begivenheden ved hjælp af logfunktionen.

Vi bruger Sigmoid funktion / kurve at forudsige den kategoriske værdi. Tærskelværdien bestemmer resultatet (vind / tab).

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

  • Y står for den afhængige variabel, der skal forudsiges.
  • β0 er Y-skæringspunktet, som grundlæggende er det punkt på linjen, der berører y-aksen.
  • β1 er linjens hældning (hældningen kan være negativ eller positiv afhængigt af forholdet mellem den afhængige variabel og den uafhængige variabel.)
  • X repræsenterer her den uafhængige variabel, der bruges til at forudsige vores resulterende afhængige værdi.

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

Anvend sigmoid-funktion på den lineære regressionsligning.

logistisk regression i python-edureka

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

Lad os se på forskellige typer logistisk regression.

Typer af logistisk regression

ruby on rails webapplikation
    • Binær logistisk regression - Den har kun to mulige resultater. Eksempel - ja eller nej
    • Multinomial logistisk regression - Den har tre eller flere nominelle kategorier. Eksempel - kat, hund, elefant.
    • Ordinær logistisk regression - Den har tre eller flere ordinære kategorier, hvilket betyder, at kategorierne vil være i en rækkefølge. Eksempel - brugerbedømmelser (1-5).

Lineær mod logistisk regression

Mens lineær regression kan have uendelige mulige værdier, logistisk regression har bestemte resultater .

Lineær regression anvendes, når responsvariablen er kontinuerlig, men logistisk regression anvendes, når responsvariablen er kategorisk.

Forudsigelse af en misligholdelse i en bank ved hjælp af transaktionsoplysningerne i fortiden er et eksempel på logistisk regression, mens en kontinuerlig produktion som et aktiemarkedsscore er et eksempel på lineær regression.

Brug sager

Følgende er brugstilfælde, hvor vi kan bruge logistisk regression.

Vejrudsigter

Vejrudsigter er resultatet af logisk regression. Her analyserer vi dataene fra de tidligere vejrrapporter og forudsiger det mulige resultat for en bestemt dag. Men logisk regression ville kun forudsige kategoriske data, som om det kommer til at regne eller ej.

Bestemmelse af sygdom

Vi kanbruglogisk regression ved hjælp af patientens sygehistorie for at forudsige, om sygdommen under alle omstændigheder er positiv eller negativ.

Lad os tage et eksempeldatasæt til at opbygge en forudsigelsesmodel ved hjælp af logistisk regression.

Demo

Vi skal bygge en forudsigelsesmodelved brug aflogisk regression i Python med hjælpafet datasæt,herivi vil dække følgende trin for at opnå logisk regression.

Indsamling af data

Det allerførste trin til implementering af den logistiske regression er at indsamle dataene. Vi indlæser csv-filen, der indeholder datasættet, i programmerne ved hjælp af pandas. Vi bruger NBA-data til at opbygge forudsigelsesmodellen til at forudsige muligheden for et hjemmekamp eller udekamp ved at analysere forholdet mellem de relevante data.

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

Du får alle dataene i et læsbart format for lettere analyse. Og så kan du bestemme de afhængige og uafhængige variabler til din model.

Analyse af data

Datasættet analyseres for at bestemme forholdet mellem variablerne. Ved at oprette forskellige plotter for at kontrollere forholdet mellem variablerne.

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

Ovenfor er forholdet mellem win / tab-procenten i forhold til hjemme / ude-kampen. Sligesomvi kan plotte grafen over forholdet mellem andre relevante poster i dataene.

Data Wrangling

Datasættet ændres i henhold til målvariablen. Vi fjerner også alle nulværdierne og strengværdierne fra DataFrame.

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

Vi kontrollerer for alle irrelevante data som nulværdier og de værdier, der ikke kræves under opbygning af forudsigelsesmodellen. Hvis der ikke er nogen nulværdier i NBA-datasættet, som vi bruger, fortsætter vi med at opdele dataene.

Test og træne data

Til udførelse af modellen opdeles dataene i testdata og togdata. Dataene opdeles ved hjælp af train_test_split . Dataene her er opdelt i forholdet 70:30.

Nu til model forudsigelse den logistiske regressionsfunktion implementeres ved at importere den logistiske regressionsmodel i sklearn-modulet.

Modellen monteres derefter på togsættet ved hjælp af fit-funktionen. Herefter udføres forudsigelsen ved hjælp af forudsigelsesfunktionen.

fra sklearn.model_selection import train_test_split fra sklearn.linear_model import LogisticRegression fra sklearn.metrics import klassificering_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) forudsigelser = logmodel.predict (x_test) print (klassificering_rapport (y_test, forudsigelse) print (confusion_matrix (y_test, forudsigelser)) print (accuracy_score (y_test, forudsigelser))

Klassificeringsrapport:

Klassificeringsrapporten viser Præcision , Recall, F1 og Support scorer for modellen.

Præcision score betyder det niveau, op til hvilket forudsigelsen fra modellen er præcis. Præcisionen for et hjemmekamp er 0,62 og for udekampen er 0,58 .

Minde om er det beløb, op til hvilket modellen kan forudsige resultatet. Husk på et hjemmekamp er 0,57 og for en udekamp er 0,64 . F1 og Support scores er den mængde data, der testes til forudsigelserne. I NBA-datasættet er de testede data til hjemmekamp 1662 og for udekampen er 1586 .

Forvirringsmatrix:

Forvirringsmatrix er en tabel, der beskriver præstationsmodelens ydeevne. En forvirringsmatrix indeholder de faktiske værdier og forudsagte værdier. Vi kan bruge disse værdier til at beregne modelens nøjagtighedsscore.

hvad er en virtuel metode

Forvirringsmatrix varmekort:

Lad os plotte et varmekort over forvirringsmatrixen ved hjælp af seaborn og at visualisere den forudsigelsesmodel, som vi har bygget. For at tegne et varmekort er følgende syntaks nødvendig.

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

Ved at se på varmekortet kan vi konkludere følgende:

  • Ud af alle forudsigelser forudsagde klassifikatoren ja i alt 1730 gange, hvoraf 1012 var faktiske ja.
  • ud af alle forudsigelser forudsagde klassifikatoren nej til det samlede antal 1518 gange, hvoraf 944 faktisk var nr.

Med denne analyse af forvirringsmatrixen kan vi konkludere nøjagtighedsscore for vores forudsigelsesmodel.

Nøjagtighedsscore:

Nøjagtighedsscore er procentdelen af ​​nøjagtighed af forudsigelserne fra modellen. For vores model er nøjagtighedsscore 0,60, hvilket er betydeligt ret nøjagtigt. Men jo mere nøjagtighedsscore, jo effektiv er din forudsigelsesmodel. Du skal altid sigte mod en højere nøjagtighedsscore for at få en bedre forudsigelsesmodel.

Ved at følge trinene beskrevet ovenfor har vi forudsagt muligheden for et hjemme / ude-spil ved hjælp af NBA-datasættet. Efter at have analyseret klassificeringsrapporten kan vi antage muligheden for et hjemme / ude-spil.

I denne blog har vi diskuteret den logistiske regression i python-koncepter, hvordan den adskiller sig fra den lineære tilgang. Vi har også dækket en demonstration ved hjælp af NBA-datasættet. For mere indsigt og praksis kan du bruge et datasæt efter eget valg og følge de diskuterede trin for at implementere logistisk regression i Python.

Tjek også de forskellige Data-Science-blogs på edureka-platformen for at mestre dataforskeren i dig.

Hvis du ønsker at lære Python og opbygge en karriere inden for datalogi, så tjek vores interaktive live-online her kommer der 24 * 7 support til at guide dig gennem din læringsperiode.
Har du et spørgsmål? Nævn det i kommentarerne, så vender vi tilbage til dig.