Comment effectuer une régression logistique en Python?

Régression logistique en Python à l'aide de sklearn pour prédire le résultat en déterminant la relation entre les variables dépendantes et une ou plusieurs variables indépendantes.

La régression logistique en Python est une technique d'analyse prédictive. Il est également utilisé dans le Machine Learning pour les problèmes de classification binaire. Dans ce blog, nous passerons en revue les sujets suivants pour comprendre la régression logistique en Python:



  1. Qu'est-ce que la régression?
  2. Régression logistique en Python
  3. Régression logistique vs régression linéaire
  4. Cas d'utilisation
  5. Manifestation

Vous pouvez également vous référer à ce tutoriel détaillé sur la régression logistique en python avec une démonstration pour une meilleure compréhension ou passer par le maîtriser la régression logistique.



Qu'est-ce que la régression?

l'analyse est une technique d'analyse statistique puissante. UNE dépendant variable de notre intérêt est utilisée pour prédire les valeurs d'autres variables indépendantes dans un ensemble de données.

Nous rencontrons constamment une régression de manière intuitive. Comme prédire le temps en utilisant l'ensemble de données des conditions météorologiques du passé.



Il utilise de nombreuses techniques pour analyser et prédire le résultat, mais l'accent est principalement mis sur relation entre la variable dépendante et une ou plusieurs variables indépendantes.

l'analyse prédit le résultat dans une variable binaire qui n'a que deux résultats possibles.



Régression logistique en Python

C'est une technique pour analyser un ensemble de données qui a une variable dépendante et une ou plusieurs variables indépendantes pour prédire le résultat dans une variable binaire, ce qui signifie qu'il n'aura que deux résultats.

La variable dépendante est catégorique dans la nature. La variable dépendante est également appelée variable cible et les variables indépendantes sont appelées les prédicteurs .

La régression logistique est un cas particulier de régression linéaire où nous ne prédisons le résultat que dans une variable catégorielle. Il prédit la probabilité de l'événement à l'aide de la fonction de journalisation.

Nous utilisons le Fonction / courbe sigmoïde pour prédire la valeur catégorielle. La valeur seuil décide du résultat (gagner / perdre).

Équation de régression linéaire: y = β0 + β1X1 + β2X2…. + βnXn

  • Y représente la variable dépendante qui doit être prédite.
  • β0 est l'ordonnée à l'origine, qui est essentiellement le point sur la ligne qui touche l'axe y.
  • β1 est la pente de la droite (la pente peut être négative ou positive selon la relation entre la variable dépendante et la variable indépendante.)
  • X représente ici la variable indépendante qui est utilisée pour prédire notre valeur dépendante résultante.

Fonction sigmoïde: p = 1/1 + e-Y

Appliquez la fonction sigmoïde sur l'équation de régression linéaire.

régression logistique en python-edureka

Équation de régression logistique: p = 1/1 + e- (β0 + β1X1 + β2X2…. + βnXn)

Jetons un coup d'œil à différents types de régression logistique.

Types de régression logistique

comment afficher un tableau en php
    • Régression logistique binaire - Elle n'a que deux résultats possibles. Exemple - oui ou non
    • Régression logistique multinomiale - Elle comporte trois catégories nominales ou plus: exemple: chat, chien, éléphant.
    • Régression logistique ordinale - Il a trois catégories ordinales ou plus, ce qui signifie que les catégories seront dans un ordre. Exemple - évaluations des utilisateurs (1-5).

Régression logistique linéaire vs

Alors que la régression linéaire peut avoir valeurs possibles infinies, la régression logistique a résultats définitifs .

La régression linéaire est utilisée lorsque la variable de réponse est de nature continue, mais la régression logistique est utilisée lorsque la variable de réponse est de nature catégorielle.

Prédire un défaillant dans une banque en utilisant les détails de la transaction dans le passé est un exemple de régression logistique, tandis qu'une sortie continue comme un score boursier est un exemple de régression linéaire.

Cas d'utilisation

Voici les cas d'utilisation où nous pouvons utiliser la régression logistique.

Prévisions météorologiques

Les prévisions météorologiques sont le résultat d'une régression logique. Ici, nous analysons les données des rapports météorologiques précédents et prédisons le résultat possible pour un jour spécifique. Mais la régression logique ne prédirait que les données catégorielles, comme s'il allait pleuvoir ou non.

Déterminer la maladie

nous pouvonsutilisationrégression logique à l'aide des antécédents médicaux du patient pour prédire si la maladie est positive ou négative dans tous les cas.

Prenons un exemple d'ensemble de données pour construire un modèle de prédiction à l'aide de la régression logistique.

Démo

Nous allons construire un modèle de prédictionen utilisantrégression logique en Python avec l'aidedeun jeu de données,dans cenous allons couvrir les étapes suivantes pour réaliser une régression logique.

La collecte de données

La toute première étape de la mise en œuvre de la régression logistique consiste à collecter les données. Nous chargerons le fichier csv contenant l'ensemble de données dans les programmes utilisant les pandas. Nous utilisons les données de la NBA pour construire le modèle de prédiction pour prédire la possibilité d'un match à domicile ou à l'extérieur, en analysant la relation entre les données pertinentes.

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))

Vous obtiendrez toutes les données dans un format lisible pour une analyse plus facile. Ensuite, vous pouvez déterminer les variables dépendantes et indépendantes de votre modèle.

Analyse des données

L'ensemble de données est analysé pour déterminer la relation entre les variables. En créant différents graphiques pour vérifier la relation entre les variables.

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

Ci-dessus, la relation entre le pourcentage de victoires / défaites par rapport au match à domicile / à l'extérieur. Similairementnous pouvons tracer le graphique de la relation entre d'autres entrées pertinentes dans les données.

Data Wrangling

L'ensemble de données est modifié en fonction de la variable cible. Nous éliminerons également toutes les valeurs nulles et les valeurs de chaîne du DataFrame.

impression (df.isnull (). sum ())

Nous vérifierons toutes les données non pertinentes telles que les valeurs nulles et les valeurs qui ne seront pas requises lors de la construction du modèle de prédiction. S'il n'y a pas de valeurs nulles dans l'ensemble de données NBA que nous utilisons, nous procéderons à la division des données.

Données de test et de formation

Pour les performances du modèle, les données sont divisées en données de test et données de train. Les données sont divisées à l'aide du train_test_split . Les données ici sont divisées dans le rapport 70:30.

Maintenant, pour le prédiction de modèle la fonction de régression logistique est implémentée en important le modèle de régression logistique dans le module sklearn.

Le modèle est ensuite installé sur le train à l'aide de la fonction d'ajustement. Après cela, la prédiction est effectuée à l'aide de la fonction de prédiction.

depuis sklearn.model_selection import train_test_split depuis sklearn.linear_model import LogisticRegression depuis sklearn.metrics import classification_report depuis sklearn.metrics import confusion_matrix, precision_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_testreport) print (confusion_matrix (y_test, prédictions)) print (precision_score (y_test, predictions))

Rapport de classification:

Le rapport de classification affiche le Précision , Rappel, F1 et support scores pour le modèle.

Précision score signifie le niveau auquel la prédiction faite par le modèle est précise. La précision pour un match à domicile est 0,62 et pour le match à l'extérieur c'est 0,58 .

Rappel est le montant auquel le modèle peut prédire le résultat. Le rappel pour un match à domicile est 0,57 et pour un match à l'extérieur, c'est 0,64 . Les scores F1 et Support sont la quantité de données testées pour les prédictions. Dans l'ensemble de données NBA, les données testées pour le match à domicile sont 1662 et pour le match à l'extérieur c'est 1586 .

Matrice de confusion:

La matrice de confusion est un tableau qui décrit les performances d'un modèle de prédiction. Une matrice de confusion contient les valeurs réelles et les valeurs prévues. nous pouvons utiliser ces valeurs pour calculer le score de précision du modèle.

Carte thermique de la matrice de confusion:

Permet de tracer une carte thermique de la matrice de confusion en utilisant seaborn et pour visualiser le modèle de prédiction que nous avons construit. Pour tracer une carte thermique, la syntaxe suivante est nécessaire.

qu'est-ce que char en java
sns.heatmap (pd.DataFrame (confusion_matrix (y_test, prédictions))) plt.show ()

En regardant la carte thermique, nous pouvons conclure ce qui suit:

  • Sur toutes les prédictions, le classificateur a prédit un oui pour le total de 1730 fois, dont 1012 étaient des oui réels.
  • sur toutes les prédictions, le classificateur a prédit non pour le total de 1518 fois, dont 944 étaient des non.

Avec cette analyse de la matrice de confusion, nous pouvons conclure le score d'exactitude de notre modèle de prédiction.

Score de précision:

Le score de précision est le pourcentage de précision des prédictions faites par le modèle. Pour notre modèle, le score de précision est de 0,60, ce qui est assez précis. Mais plus le score de précision est élevé, plus votre modèle de prédiction est efficace. Vous devez toujours viser un score de précision plus élevé pour un meilleur modèle de prédiction.

En suivant les étapes décrites ci-dessus, nous avons prédit la possibilité d'un match domicile / extérieur en utilisant l'ensemble de données NBA. Après avoir analysé le rapport de classement, nous pouvons supposer la possibilité d'un match domicile / extérieur.

Dans ce blog, nous avons discuté de la régression logistique dans les concepts python, en quoi elle est différente de l'approche linéaire. Nous avons également couvert une démonstration utilisant le jeu de données NBA. Pour plus d'informations et de pratique, vous pouvez utiliser un ensemble de données de votre choix et suivre les étapes décrites pour implémenter la régression logistique en Python.

Consultez également les différents blogs Data-Science sur la plateforme edureka pour maîtriser le data scientist en vous.

Si vous souhaitez apprendre Python et vous bâtir une carrière dans la science des données, consultez notre site interactif en ligne ici, cela vient avec un support 24 * 7 pour vous guider tout au long de votre période d'apprentissage.
tu as une question? Veuillez le mentionner dans les commentaires et nous vous recontacterons.