Régression logistique scipy

Régression logistique scipy
La popularité de l'apprentissage automatique et des sciences des données a augmenté tous les jours depuis la quantité de données produites et des algorithmes efficaces pour gérer et travailler avec ces données, et la force de la puissance de calcul continue d'augmenter. La classification des données avec la méthode de régression logistique est l'un des domaines essentiels et de base de l'apprentissage automatique. Dans cet article, nous expliquerons ce qu'est la classification des données, quelle est la régression logistique et comment elles sont implémentées dans un programme Python. Nous allons démontrer quelques exemples et expliquer chaque partie individuellement pour vous aider à comprendre comment vous pouvez implémenter la régression logistique dans Python.

Qu'est-ce que la classification?

Premièrement, pour implémenter quoi que ce soit dans Python ou tout autre langage de programmation, vous devez comprendre sa fonctionnalité de base afin que vous puissiez écrire efficacement le code pour cela. Alors, expliquons d'abord le concept de classification, puis passons à la mise en œuvre de la régression logistique à l'aide des fonctions de bibliothèque Scipy.

Dans la science des données et l'apprentissage automatique, la classification est un sous-champ d'apprentissage automatique supervisé qui fait des prédictions sur la catégorie ou la classe à laquelle une entité appartiendra en fonction de ses attributs. Il analyse la collecte des observations en décrivant mathématiquement la dépendance entre les données d'entrée et de sortie. Il crée une connexion ou un lien entre les variables dépendantes et indépendantes et il le fait en travaillant avec les deux. Il peut être utilisé dans divers domaines de la technologie et de la science à diverses fins comme la reconnaissance d'image, la classification du texte, etc.

Qu'est-ce que la régression logistique?

La régression logistique est une technique d'apprentissage automatique supervisée pour la classification comparable à la régression linéaire et est membre de la classe des classificateurs linéaires. C'est une méthode très pratique, simple et rapide pour interpréter les résultats. Il peut non seulement être utilisé pour la classification binaire mais aussi des problèmes multiples. En mathématiques, la régression logistique fonctionne avec le logarithme naturel et les fonctions sigmoïdes. La fonction sigmoïde est la courbe en forme de S d'une variable qui a 0 ou 1 dans presque tous les domaines. Tandis que le logarithme naturel est le logarithme d'un nombre à sa base.

Qu'est-ce que la régression logistique dans Scipy Python?

L'idée derrière la régression logistique est la même dans Scipy Python que nous avons discuté plus tôt. La bibliothèque Scipy fournit la fonction logistique () pour calculer la régression logistique dans le programme Python. Nous expliquerons certains cas communs de régression logistique à l'aide d'exemples. Mais avant cela, apprenons et comprenons la syntaxe de la fonction logistique fournie par la bibliothèque Scipy.

Syntaxe de la fonction Scipy Logistic () dans Python

La fonction logistique () de la bibliothèque Scipy est utilisée pour générer les variables aléatoires continues et fonctionne avec les méthodes de la classe RV_Continue. Il hérite de toutes les méthodes, caractéristiques et fonctionnalités de la classe RV_continuous pour compléter les détails spécifiques de la régression logistique. La fonction logistique () utilise la fonction de densité de probabilité suivante:

Qui est un cas particulier de génlogiste avec c = 1. Voir la syntaxe de la fonction logistique avec les méthodes de la classe RV_Continue ci-dessous:

Ici, l'objet 'Logistic_gen' fait référence à l'une des méthodes de la classe RV_Continue. Certaines des méthodes de la classe RV_Continue sont PPF, PDF, CDF, LogPDF, RVS, SF, ISF, etc. Maintenant, passons à la section Exemples pour apprendre à implémenter la fonction logistique () dans un programme Python.

Exemple 1:

Considérez l'exemple de code ci-dessous pour comprendre le fonctionnement de la fonction logistique () de la bibliothèque Scipy. Ici, nous implémentons la fonction logistique () avec des méthodes PPF et PDF. Le PPF signifie pourcentage la fonction de point qui est utilisé pour obtenir le centile des données et PDF signifie une fonction de densité de probabilité et est utilisé pour obtenir la densité de probabilité des données. Voir l'exemple de code ci-dessous, puis nous expliquerons chaque pièce étape par étape:

Importer Numpy comme NP
de Scipy.Statistiques importent logistique
Importer Matplotlib.pypllot comme plt
Fig, ax = plt.intrigues secondaires (1, 1)
x = np.lispace (logistique.PPF (0.02),
la logistique.PPF (0.98), 100)
hache.tracé (x, logistique.PDF (x),
'r', lw = 8, alpha = 0.4, label = 'Logistic PDF')
RV = Logistic ()
hache.Terrain (x, RV.pdf (x), 'k', lw = 3, label = 'Frozen PDF')
hache.légende (loc = 'meilleur')
PLT.montrer()

Parlons d'abord des bibliothèques, puis du reste du programme. Nous avons besoin de la bibliothèque Numpy pour générer et stocker les données dans un objet Numpy. Nous avons besoin de la bibliothèque Scipy pour utiliser la fonction de son package de statistiques. Nous avons besoin de la bibliothèque Matplotlib pour tracer les données dans un graphique. Par conséquent, nous avons importé les trois bibliothèques ainsi que leurs packages et fonctions associés dont nous aurons besoin. Après cela, la taille 1 x1 pour tracer le graphique est définie par sous-intrigue (1, 1). La variable x contient les données de la fonction de densité de probabilité qui fournira le PDF logistique. Le PDF logistique a été gelé dans le RV variable et les deux résultats ont été transmis à la fonction Plot () alors affichez-les dans le graphique. Maintenant, voyons le graphique généré ci-dessous:

Exemple 2:

Auparavant, nous avons implémenté la fonction PDF pour générer une régression logistique, puis l'avons gelée. Comparons maintenant le résultat de la méthode CDF avec la méthode PDF dans cet exemple. Considérez l'exemple de code donné dans l'extrait de code ci-dessous:

Importer Numpy comme NP
de Scipy.Statistiques importent logistique
Importer Matplotlib.pypllot comme plt
Fig, ax = plt.intrigues secondaires (1, 1)
x = np.lispace (logistique.PPF (0.02),
la logistique.PPF (0.98), 100)
hache.tracé (x, logistique.PDF (x),
'r', lw = 8, alpha = 0.4, label = 'Logistic PDF')
RV = Logistic ()
hache.Terrain (x, RV.pdf (x), 'k', lw = 3, label = 'Frozen PDF')
vals = logistique.ppf ([0.001, 1, 0.999])
NP.allClose ([0.001, 1, 0.999], logistique.CDF (VALS))
r = logistique.VR (taille = 1000)
hache.Hist (r, density = true, histtype = 'stepled', alpha = 0.5)
hache.légende (loc = 'meilleur', frameon = false)
PLT.montrer()

La première section du programme est la même que ce que nous avons défini dans l'exemple précédent. L'implémentation de la méthode CDF a été ajoutée à ce programme. Pour comparer la ligne du PDF logistique, nous avons généré l'histogramme de la méthode CDF. Voyons le graphique donné dans la capture d'écran ci-dessous:

Exemple 3:

Implémentons-nous une autre méthode de la classe RV_Continue pour comprendre le fonctionnement de la fonction logistique (). Considérez l'exemple de code donné dans l'extrait de code ci-dessous:

Importer Numpy comme NP
de Scipy.Statistiques importent logistique
Importer Matplotlib.pypllot comme plt
Fig, ax = plt.intrigues secondaires (1, 1)
x = np.lispace (logistique.PPF (0.02),
la logistique.PPF (0.98), 100)
hache.tracé (x, logistique.PDF (x),
'r', lw = 8, alpha = 0.4, label = 'Logistic PDF')
RV = Logistic ()
hache.Terrain (x, RV.pdf (x), 'k', lw = 3, label = 'Frozen PDF')
vals = logistique.ppf ([0.001, 1, 0.999])
NP.allClose ([0.001, 1, 0.999], logistique.LOGCDF ​​(VALS))
r = logistique.VR (taille = 1000)
hache.Hist (r, density = true, histtype = 'stepled', alpha = 0.5)
hache.légende (loc = 'meilleur', frameon = false)
PLT.montrer()

Nous avons utilisé le même programme que dans les exemples précédents, nous venons de remplacer la méthode CDF par la méthode LOGCDF. Maintenant, comparons les résultats de la méthode CDF et de la méthode LOCCDF en comparant les sorties des deux programmes. Voir le résultat ci-dessous:

Conclusion

Ce guide a donné un aperçu rapide de la fonction de régression logistique fournie par la bibliothèque SCIPY. Une approche supervisée d'apprentissage automatique offerte dans le groupe de classification est la régression logistique. La régression logistique est l'une de ses techniques importantes, et la classification est également une application importante de l'apprentissage automatique. Nous avons démontré quelques exemples pour montrer comment implémenter la fonction logistique () de la bibliothèque SCIPY.