Hur man utför logistisk regression i Python?



Logistisk regression i Python med hjälp av sklearn för att förutsäga resultatet genom att bestämma förhållandet mellan beroende och en eller flera oberoende variabler.

Logistisk regression i Python är en prediktiv analysteknik. Det används också i maskininlärning för binära klassificeringsproblem. I den här bloggen kommer vi att gå igenom följande ämnen för att förstå logistisk regression i Python:

  1. Vad är regression?
  2. Logistisk regression i Python
  3. Logistisk regression mot linjär regression
  4. Använd fodral
  5. Demonstration

Du kan också hänvisa till denna detaljerade handledning om logistisk regression i python med en demonstration för bättre förståelse eller gå igenom för att bemästra logistisk regression.





Vad är regression?

analys är en kraftfull statistisk analysteknik. A beroende variabel av vårt intresse används för att förutsäga andras värden oberoende variabler i en datamängd.

Vi stöter på regression på ett intuitivt sätt hela tiden. Som att förutse vädret med hjälp av datauppsättningen av väderförhållandena tidigare.



Den använder många tekniker för att analysera och förutsäga resultatet, men tonvikten ligger främst på förhållandet mellan beroende variabel och en eller flera oberoende variabler.

analys förutsäger resultatet i en binär variabel som bara har två möjliga resultat.



Logistisk regression i Python

Det är en teknik för att analysera en datamängd som har en beroende variabel och en eller flera oberoende variabler för att förutsäga resultatet i en binär variabel, vilket innebär att den bara kommer att ha två resultat.

Den beroende variabeln är kategorisk i naturen. Beroende variabel kallas också målvariabel och de oberoende variablerna kallas prediktorer .

Logistisk regression är ett speciellt fall av linjär regression där vi bara förutsäger resultatet i en kategorisk variabel. Det förutspår sannolikheten för händelsen med hjälp av loggfunktionen.

Vi använder Sigmoid funktion / kurva att förutsäga det kategoriska värdet. Tröskelvärdet avgör resultatet (vinna / förlora).

Linjär regressionsekvation: y = β0 + β1X1 + β2X2…. + βnXn

  • Y står för den beroende variabeln som behöver förutses.
  • β0 är Y-skärningspunkten, som i grunden är den punkt på linjen som berör y-axeln.
  • β1 är linjens lutning (lutningen kan vara negativ eller positiv beroende på förhållandet mellan den beroende variabeln och den oberoende variabeln.)
  • X representerar här den oberoende variabeln som används för att förutsäga vårt resulterande beroende värde.

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

Använd sigmoidfunktion på den linjära regressionsekvationen.

logistisk regression i python-edureka

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

Låt oss ta en titt på olika typer av logistisk regression.

Typer av logistisk regression

Big Data Developer jobbbeskrivning
    • Binär logistisk regression - Det har bara två möjliga resultat. Exempel - ja eller nej
    • Multinomial logistisk regression - Den har tre eller flera nominella kategorier. Exempel - katt, hund, elefant.
    • Ordinär logistisk regression - Den har tre eller flera ordinära kategorier, vilket betyder att kategorierna kommer att vara i en ordning. Exempel - användarnas betyg (1-5).

Linjär mot logistisk regression

Medan linjär regression kan ha oändliga möjliga värden, logistisk regression har definitiva resultat .

Linjär regression används när svarsvariabeln har kontinuerlig karaktär, men logistisk regression används när svarsvariabeln är kategorisk till sin natur.

Att förutsäga ett mislighållare i en bank med hjälp av tidigare transaktionsdetaljer är ett exempel på logistisk regression, medan en kontinuerlig produktion som en aktiemarknadspoäng är ett exempel på linjär regression.

Använd fodral

Följande är användningsfall där vi kan använda logistisk regression.

Väderprognos

Väderprognoser är resultatet av logisk regression. Här analyserar vi data från tidigare väderrapporter och förutsäger det möjliga resultatet för en viss dag. Men logisk regression skulle bara förutsäga kategoriska data, som om det kommer att regna eller inte.

Bestämma sjukdom

Vi kananvända sig avlogisk regression med hjälp av patientens medicinska historia för att förutsäga om sjukdomen i alla fall är positiv eller negativ.

Låt oss ta en provuppsättning för att bygga en förutsägelsemodell med hjälp av logistisk regression.

Demo

Vi ska bygga en förutsägelsemodellanvänder sig avlogisk regression i Python med hjälpaven dataset,i dennavi kommer att täcka följande steg för att uppnå logisk regression.

Samla in data

Det allra första steget för att implementera den logistiska regressionen är att samla in data. Vi laddar in csv-filen som innehåller datauppsättningen i programmen med hjälp av pandorna. Vi använder NBA-data för att bygga förutsägelsemodellen för att förutsäga möjligheten till ett hemmamatch eller bortamatch genom att analysera förhållandet mellan relevanta data.

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

Du kommer att få all information i ett läsbart format för enklare analys. Och sedan kan du bestämma de beroende och oberoende variablerna för din modell.

Analysera data

Datamängden analyseras för att bestämma förhållandet mellan variablerna. Genom att skapa olika diagram för att kontrollera förhållandet mellan variablerna.

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

Ovan är förhållandet mellan vinst / förlustprocenten i förhållande till hemma / borta-matchen. Slikartatvi kan plotta grafen för förhållandet mellan andra relevanta poster i data.

Data Wrangling

Datamängden modifieras enligt målvariabeln. Vi kommer också att eliminera alla nollvärden och strängvärdena från DataFrame.

skriva ut (df.isnull (). sum ())

Vi kommer att kontrollera om alla irrelevanta data som nollvärden och de värden som inte krävs när vi bygger förutsägelsemodellen. Om det inte finns några nollvärden i NBA-datasetet som vi använder, fortsätter vi med att dela upp data.

Testa och träna data

För modellens prestanda delas data i testdata och tågdata. Uppgifterna delas med hjälp av train_test_split . Uppgifterna här är uppdelade i förhållandet 70:30.

konvertera binär till heltal java

Nu, för modell förutsägelse den logistiska regressionsfunktionen implementeras genom att importera den logistiska regressionsmodellen i sklearn-modulen.

Modellen monteras sedan på tåget med hjälp av passningsfunktionen. Efter detta utförs förutsägelsen med hjälp av prediktionsfunktionen.

från sklearn.model_selection import train_test_split från sklearn.linear_model import LogisticRegression från sklearn.metrics import klassificering_rapport från sklearn.metrics import confusion_matrix, accuracy_score x = df.drop ('Hem', axel = 1) y = df ['Hem'] 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 (klassificeringsrapport (y_test, skriva ut (confusion_matrix (y_test, predictions)) print (accuracy_score (y_test, predictions))

Klassificeringsrapport:

Klassificeringsrapporten visar Precision , Recall, F1 och Support poäng för modellen.

Precision poäng betyder nivån upp till vilken förutsägelsen från modellen är exakt. Precisionen för ett hemmamatch är 0,62 och för bortaleken är 0,58 .

Återkallelse är det belopp upp till vilket modellen kan förutsäga resultatet. Återkallelse för ett hemmamatch är 0,57 och för en bortamatch är 0,64 . F1 och Support-poäng är mängden data som testats för förutsägelser. I NBA-datauppsättningen är de testade data för hemmamatch 1662 och för bortaleken är 1586 .

Förvirringsmatris:

Förvirringsmatris är en tabell som beskriver prestanda för en förutsägelsemodell. En förvirringsmatris innehåller de faktiska värdena och förutsagda värden. vi kan använda dessa värden för att beräkna modellens noggrannhetspoäng.

Förvirringsmatris värmekarta:

Låt oss plotta en värmekarta över förvirringsmatrisen med hjälp av seaborn och för att visualisera den förutsägelsesmodell som vi har byggt. För att plotta en värmekarta är följande syntax nödvändig.

sns.heatmap (pd.DataFrame (confusion_matrix (y_test, förutsägelser))) plt.show ()

Genom att titta på värmekartan kan vi avsluta följande:

  • Av alla förutsägelser förutspådde klassificeringen ja totalt 1730 gånger, varav 1012 var faktiska ja.
  • av alla förutsägelser förutspådde klassificeringen nej för totalt 1518 gånger, varav 944 var faktiska nr.

Med denna analys av förvirringsmatrisen kan vi avsluta noggrannhetspoängen för vår prediktionsmodell.

Noggrannhetspoäng:

Noggrannhetspoäng är procentandelen av noggrannhet för de förutsägelser som görs av modellen. För vår modell är noggrannhetspoängen 0,60, vilket är betydligt ganska korrekt. Men ju mer noggrannhetspoängen är, är din förutsägelsesmodell effektiv. Du måste alltid sikta på en högre noggrannhetspoäng för en bättre förutsägelsesmodell.

Genom att följa stegen som diskuterats ovan har vi förutsagt möjligheten att spela hemma / borta med hjälp av NBA-datasetet. Efter att ha analyserat klassificeringsrapporten kan vi anta möjligheten till hemma / bortamatch.

I den här bloggen har vi diskuterat den logistiska regressionen i pythonkoncept, hur den skiljer sig från den linjära metoden. Vi har också täckt en demonstration med NBA-datauppsättningen. För mer insikt och övning kan du använda en datauppsättning efter eget val och följa stegen som diskuterats för att implementera logistisk regression i Python.

Kolla också in de olika datavetenskapliga bloggarna på edureka-plattformen för att bemästra datavetaren i dig.

Om du vill lära dig Python och bygga en karriär inom datavetenskap, kolla in vår interaktiva, live-online här kommer det med 24 * 7 support för att vägleda dig under hela din inlärningsperiod.
Har du en fråga? Vänligen nämna det i kommentarerna så återkommer vi till dig.