Hoe logistische regressie uit te voeren in Python?



Logistische regressie in Python met sklearn om de uitkomst te voorspellen door de relatie tussen afhankelijke en een of meer onafhankelijke variabelen te bepalen.

Logistische regressie in Python is een voorspellende analysetechniek. Het wordt ook gebruikt in Machine Learning voor binaire classificatieproblemen. In deze blog zullen we de volgende onderwerpen bespreken om logistieke regressie in Python te begrijpen:

  1. Wat is regressie?
  2. Logistieke regressie in Python
  3. Logistische regressie versus lineaire regressie
  4. Gebruik cases
  5. Demonstratie

U kunt deze gedetailleerde tutorial over logistieke regressie in Python ook raadplegen met een demonstratie voor een beter begrip of door de om logistieke regressie te beheersen.





Wat is regressie?

analyse is een krachtige statistische analysetechniek. EEN afhankelijk variabele van onze interesse wordt gebruikt om de waarden van andere te voorspellen onafhankelijke variabelen in een dataset.

We komen de hele tijd op een intuïtieve manier regressie tegen. Zoals het voorspellen van het weer met behulp van de dataset van de weersomstandigheden in het verleden.



Er worden veel technieken gebruikt om de uitkomst te analyseren en te voorspellen, maar de nadruk ligt vooral op relatie tussen afhankelijke variabele en een of meer onafhankelijke variabelen.

analyse voorspelt de uitkomst in een binaire variabele die slechts twee mogelijke uitkomsten heeft.



Logistieke regressie in Python

Het is een techniek om een ​​dataset te analyseren die een afhankelijke variabele en een of meer onafhankelijke variabelen heeft om de uitkomst in een binaire variabele te voorspellen, wat betekent dat het slechts twee uitkomsten heeft.

De afhankelijke variabele is categorisch in de natuur. Afhankelijke variabele wordt ook wel doelvariabele en de onafhankelijke variabelen worden de voorspellers .

Logistische regressie is een speciaal geval van lineaire regressie waarbij we alleen de uitkomst voorspellen in een categorische variabele. Het voorspelt de waarschijnlijkheid van de gebeurtenis met behulp van de logfunctie.

Wij gebruiken de Sigmoid-functie / curve om de categorische waarde te voorspellen. De drempelwaarde bepaalt de uitkomst (winst / verlies).

Lineaire regressievergelijking: y = β0 + β1X1 + β2X2…. + βnXn

  • Y staat voor de afhankelijke variabele die moet worden voorspeld.
  • β0 is het Y-snijpunt, wat in feite het punt op de lijn is dat de y-as raakt.
  • β1 is de helling van de lijn (de helling kan negatief of positief zijn, afhankelijk van de relatie tussen de afhankelijke variabele en de onafhankelijke variabele.)
  • X vertegenwoordigt hier de onafhankelijke variabele die wordt gebruikt om onze resulterende afhankelijke waarde te voorspellen.

Sigmoid-functie: p = 1/1 + e-J

Pas de sigmoid-functie toe op de lineaire regressievergelijking.

logistieke regressie in python-edureka

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

Laten we eens kijken naar verschillende soorten logistieke regressie.

Soorten logistieke regressie

basisgegevensstructuren in java
    • Binaire logistische regressie - Het heeft slechts twee mogelijke uitkomsten. Voorbeeld: ja of nee
    • Multinominale logistische regressie - Het heeft drie of meer nominale categorieën. Voorbeeld: kat, hond, olifant.
    • Ordinale logistische regressie - Het heeft drie of meer ordinale categorieën, ordinaal betekent dat de categorieën in een volgorde staan. Voorbeeld - gebruikersbeoordelingen (1-5).

Lineaire versus logistieke regressie

Terwijl lineaire regressie kan hebben oneindig veel mogelijke waarden, logistieke regressie heeft definitieve resultaten .

Lineaire regressie wordt gebruikt wanneer de responsvariabele continu van aard is, maar logistische regressie wordt gebruikt wanneer de responsvariabele categorisch van aard is.

Het voorspellen van een wanbetaler bij een bank met behulp van de transactiegegevens in het verleden is een voorbeeld van logistieke regressie, terwijl een continue output zoals een beursscore een voorbeeld is van lineaire regressie.

Gebruik cases

Hieronder volgen de use cases waarin we logistieke regressie kunnen gebruiken.

Weersvoorspelling

Weersvoorspellingen zijn het resultaat van logische regressie. Hier analyseren we de gegevens van de vorige weerberichten en voorspellen we de mogelijke uitkomst voor een specifieke dag. Maar logische regressie zou alleen categorische gegevens voorspellen, alsof het gaat regenen of niet.

Ziekte bepalen

Wij kunnengebruiklogische regressie met behulp van de medische geschiedenis van de patiënt om te voorspellen of de ziekte in ieder geval positief of negatief is.

Laten we een voorbeeldgegevensverzameling nemen om een ​​voorspellingsmodel te bouwen met behulp van logistieke regressie.

Demo

We gaan een voorspellingsmodel bouwengebruik makend vanlogische regressie in Python met de hulpvaneen dataset,in dezewe gaan de volgende stappen behandelen om logische regressie te bereiken.

Gegevens verzamelen

De allereerste stap voor het implementeren van de logistische regressie is het verzamelen van de gegevens. We laden het csv-bestand met de gegevensset in de programma's die de panda's gebruiken. We gebruiken de NBA-data voor het bouwen van het voorspellingsmodel om de mogelijkheid van een thuiswedstrijd of uitwedstrijd te voorspellen, door de relatie tussen de relevante data te analyseren.

importeer panda's als pd importeer numpy als np importeer seaborn als sns importeer matplotlib.pyplot als plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') print (df.head (5))

U krijgt alle gegevens in een leesbaar formaat voor eenvoudigere analyse. En dan kunt u de afhankelijke en onafhankelijke variabelen voor uw model bepalen.

hoe java-applicatie te implementeren in aws

Gegevens analyseren

De dataset wordt geanalyseerd om de relatie tussen de variabelen te bepalen. Door verschillende plots te maken om de relatie tussen de variabelen te controleren.

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

Hierboven staat de relatie tussen het winst / verlies percentage ten opzichte van de thuis / uitwedstrijd. Sop dezelfde manierwe kunnen de grafiek van de relatie tussen andere relevante items in de gegevens plotten.

Data Wrangling

De dataset wordt aangepast aan de doelvariabele. We zullen alle null-waarden en de string-waarden ook uit het DataFrame verwijderen.

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

We zullen alle irrelevante gegevens controleren, zoals null-waarden en de waarden die niet nodig zijn tijdens het bouwen van het voorspellingsmodel. Als er geen null-waarden zijn in de NBA-gegevensset die we gebruiken, gaan we verder met het splitsen van de gegevens.

Test en train gegevens

Voor de uitvoering van het model worden de gegevens opgesplitst in de testgegevens en treindata. De gegevens worden gesplitst met behulp van de train_test_split . De gegevens zijn hier opgesplitst in de verhouding 70:30.

Nu, voor de model voorspelling de logistische regressiefunctie wordt geïmplementeerd door het logistische regressiemodel in de sklearn-module te importeren.

Het model wordt vervolgens met de fit-functie op de treinset geplaatst. Hierna wordt de voorspelling uitgevoerd met behulp van de voorspellingsfunctie.

uit sklearn.model_selection importeer train_test_split uit sklearn.linear_model import LogisticRegression uit sklearn.metrics importeer classificatie_rapport uit sklearn.metrics importeer 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) voorspellingen = logmodel.predict (x_test) print (classificatie_rapport (y_test, voorspellingen) print (confusion_matrix (y_test, voorspellingen)) print (accurate_score (y_test, voorspellingen))

Classificatierapport:

Het classificatierapport geeft het Precisie , Recall, F1 en ondersteuning scores voor het model.

Precisie score betekent het niveau tot waarop de voorspelling van het model nauwkeurig is. De precisie voor een thuiswedstrijd is 0,62 en voor de uitwedstrijd is 0,58 .

Terugroepen is het bedrag tot waar het model de uitkomst kan voorspellen. Terugroepen voor een thuiswedstrijd is 0,57 en voor een uitwedstrijd is 0,64 . F1- en ondersteuningsscores zijn de hoeveelheid gegevens die voor de voorspellingen zijn getest. In de NBA-dataset staan ​​de geteste data voor thuiswedstrijd 1662 en voor de uitwedstrijd is 1586 .

Verwaringsmatrix:

Verwarmeringsmatrix is ​​een tabel die de prestaties van een voorspellingsmodel beschrijft. Een verwarringmatrix bevat de werkelijke waarden en voorspelde waarden. we kunnen deze waarden gebruiken om de nauwkeurigheidsscore van het model te berekenen.

Verwarmeringsmatrix heatmap:

Laten we een heatmap van de verwarringmatrix uitzetten met seaborn en om het voorspellingsmodel dat we hebben gebouwd te visualiseren. Om een ​​heatmap te plotten, is de volgende syntaxis nodig.

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

Door naar de heatmap te kijken, kunnen we het volgende concluderen:

  • Van alle voorspellingen voorspelde de classificator in totaal 1730 keer ja, waarvan 1012 daadwerkelijk ja.
  • van alle voorspellingen voorspelde de classificator in totaal 1518 keer nee, waarvan 944 daadwerkelijk nee waren.

Met deze analyse van de verwarringmatrix kunnen we de nauwkeurigheidsscore voor ons voorspellingsmodel concluderen.

Nauwkeurigheidsscore:

Nauwkeurigheidsscore is het percentage nauwkeurigheid van de voorspellingen die door het model zijn gemaakt. Voor ons model is de nauwkeurigheidsscore 0,60, wat behoorlijk nauwkeurig is. Maar hoe meer de nauwkeurigheidsscore, hoe efficiënt uw voorspellingsmodel is. U moet altijd streven naar een hogere nauwkeurigheidsscore voor een beter voorspellingsmodel.

Door de hierboven besproken stappen te volgen, hebben we de mogelijkheid van een thuis- / uitwedstrijd voorspeld met behulp van de NBA-dataset. Na analyse van het classificatierapport kunnen we uitgaan van de mogelijkheid van een thuis- / uitwedstrijd.

In deze blog hebben we de logistieke regressie in pythonconcepten besproken, hoe deze verschilt van de lineaire benadering. We hebben ook een demonstratie gegeven met behulp van de NBA-dataset. Voor meer inzicht en oefening kunt u een dataset naar keuze gebruiken en de besproken stappen volgen om logistieke regressie in Python te implementeren.

Bekijk ook de verschillende Data-Science blogs op het edureka-platform om de datawetenschapper in jou onder de knie te krijgen.

Als je Python wilt leren en een carrière in de datawetenschap wilt opbouwen, bekijk dan onze interactieve, live-online hier, dat wordt geleverd met 24 * 7 ondersteuning om u tijdens uw leerperiode te begeleiden.
Heb je een vraag? Vermeld het in de opmerkingen en we nemen contact met u op.