Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

En regardant les informations, vous êtes probablement tombé sur des prévisions météorologiques indiquant que les chances de chute de neige sont de 75 %. Vous êtes-vous déjà demandé comment ils arrivent à ce pourcentage ? Ou savez-vous ce qu’elles signifient ? Ce sont des affirmations compliquées, surtout du point de vue des fréquentistes. Vous aurez peut-être du mal à expliquer si la neige va tomber ou non.
Selon Bayesian, cette approche est explicable, et ils fournissent une solution à ce type d’affirmations. L’approche bayésienne de la probabilité explique que vous pouvez mesurer la probabilité en vous basant sur la crédibilité d’un événement. C’est pourquoi les Bayésiens sont confiants quant à la probabilité d’un événement.
En d’autres termes, un Bayésien n’est pas complètement sûr de ce qu’il croit, mais il est confiant par rapport à l’événement. Cependant, en tant que Bayésien, vous devenez plus confiant sur ce que vous croyez après avoir recueilli les données et interprété le lien entre ces données.

Qu’est-ce que PyMC3

La programmation PP ou probabiliste permet de coder la spécification des modèles bayésiens. PyMC3 est une version open-source et mise à jour de PyMC2. PyMC3 est un cadre pour la programmation probabiliste. A l’aide du framework PyMC3, vous pouvez décrire vos modèles avec une syntaxe puissante, lisible et intuitive. La syntaxe est similaire à celle des statisticiens de la syntaxe naturelle.
Ce cadre vous permet de mettre en œuvre des algorithmes de Monte Carlo en chaîne de Markov. Ces algorithmes constituent un outil de nouvelle génération pour l’échantillonnage et la segmentation – par exemple, l’échantillonneur sans retournement, la variante auto-réglable de Monte Carlo de Hamilton, etc. Vous pouvez travailler sur ces échantillonneurs avec la distribution postérieure complexe et la haute dimension. Ces algorithmes vous aident à élaborer des modèles complexes et détaillés sans qu’il soit nécessaire d’avoir des connaissances approfondies et de se spécialiser dans des algorithmes compliqués.

Réseau bayésien avec PyMC3

Vous pouvez calculer les probabilités de l’événement et définir la relation entre les différentes variables à l’aide de modèles probabilistes. Par exemple, si vous créez un modèle couvrant tous les cas et probabilités possibles, vous avez besoin de grandes quantités de données. Le réseau simplifiera les hypothèses par une indépendance conditionnelle et en augmentant l’efficacité de toutes les variables aléatoires. Bien que les étapes soient simples, vous pouvez prendre l’exemple de Naïve Bayes dans ce cas.
Vous pouvez créer un modèle pour préserver la dépendance conditionnelle que vous connaissez déjà parmi l’indépendance conditionnelle et les variables aléatoires dans différents cas.
Les réseaux bayésiens sont des modèles pour les graphiques probabilistes, qui capturent la dépendance conditionnelle que vous connaissez et dirigent les valeurs dans une représentation graphique. Vous pouvez trouver les connexions manquantes à l’aide des indépendances conditionnelles du modèle.
Les réseaux bayésiens vous offrent des outils utiles qui vous permettent de générer le graphique du domaine et de visualiser le modèle probabiliste. De plus, ils vous aident à examiner la relation de vos variables aléatoires. De plus, il indique la raison de ces probabilités à l’aide de preuves. Le réseau bayésien présente deux avantages majeurs :
– Premièrement, le réseau bayésien vous permet de comprendre comment vous pouvez créer et ajuster votre modèle en fonction de vos besoins. Toutefois, avant d’effectuer cette activité, vous devez comprendre le concept et le mécanisme de fonctionnement du modèle.
– Deuxièmement, vous pouvez vérifier les performances du modèle lorsque nous disposons déjà des données de sortie. Par exemple, vous pouvez vérifier l’incertitude et les valeurs. Cela nous aide à comprendre l’exactitude du modèle.
Ci-dessous, nous allons comprendre comment Python stimule vos données à l’aide de propriétés que nous avons déjà.

PyMC3 avec Python

L’utilisation de Python pour la programmation probabiliste vous apporte de nombreux avantages. Voici quelques avantages de PyMC3 avec Python :
– Compatibilité avec de multiples plateformes
– Une syntaxe lisible, propre et expressive
– Extensibilité avec Cython, Fortron, C et C++
– Intégration facile avec les bibliothèques scientifiques
Grâce à ces fonctionnalités et à la qualité de PyMC3, vous pouvez facilement écrire une distribution statistique personnalisée, une fonction de transformation et des échantillons pour l’analyse bayésienne.

Exemple de PyMC3 avec Python

Vous pouvez consulter l’exemple suivant de grenade, qui est un paquet Python. Dans cet exemple, nous utilisons les données des patients COVID et des fumeurs pour savoir combien de personnes se retrouveront à l’hôpital. Vous pouvez comprendre le concept à partir de l’exemple suivant :
importation de grenade aspg

smokeD = pg.DiscreteDistribution({“oui” : 0,25, “non” : 0,75})
covidD = pg.DiscreteDistribution({“oui” : 0,1, “non” : 0,9})
hospitalD = pg.ConditionalProbabilityTable(
[“oui”, “oui”, “oui”, “oui”, 0,9], [“oui”, “oui”, “non”, 0,1],
[“oui”, “non”, “oui”, 0,1], [“oui”, “non”, “non”, 0,9],
[“non”, “oui”, “oui”, 0,9], [“non”, “oui”, “non”, 0,1],
[“non”, “non”, “oui”, 0,01], [“non”, “non”, “non”, “non”, 0,99]],
[smokeD, covidD])

smoke = pg.Node(smokeD, name=”smokeD”)
covid = pg.Node(covidD, name=”covidD”)
hospital = pg.Node(hospitalD, name=”hospitalD”)

modèle = pg.BayesianNetwork(“Covid Collider”)
model.add_states(smoke, covid, hospital)
model.add_edge(fumée, hôpital)
model.add_edge(covid, hôpital)
model.bake()
Vous pourriez alors calculer P(covid|fumeur, hôpital) = 0,5 avec
model.predict_proba({‘smokeD’ : ‘yes’, ‘hospitalD’ : ‘yes’})
et P(covid|¬¬fumeur, hôpital)=0,91 avec
model.predict_proba({“smokeD” : no, hospitalD : yes({‘smokeD’ : ‘no’, ‘hospitalD’ : ‘yes’}

L’avenir de PyMC3

Nous attendons une transformation majeure de l’approche PyMC3. Nous pouvons maintenant rassembler les graphiques Theano dans JAX et utiliser un échantillonneur MCMC basé sur JAX. Cela signifie que nous pouvons changer le codage dorsal en JAX sans modifier les codes PyMC3. En outre, nous pouvons utiliser un échantillonnage ultra-rapide pour les modèles de grande taille à l’aide d’échantillonneurs basés sur JAX.
Ce qui est étonnant dans cette possibilité, c’est qu’il n’est pas nécessaire de changer le code existant du modèle PyMC3 pour faire fonctionner vos modèles sur du matériel moderne, un backend moderne et des échantillonneurs basés sur JAX. Cette approche et ce changement vous permettront de bénéficier d’une vitesse étonnante sans dépenses supplémentaires.
Avec l’intérêt croissant de TF et PyTorch pour les graphes dynamiques, Python ne dispose plus de bibliothèques statiques adéquates. De plus, les avantages des graphes statiques par rapport aux graphes dynamiques sont nombreux. C’est pourquoi nous considérons Theano comme une bibliothèque puissante et mature pour l’avenir. Elle gagnera en puissance à l’avenir car vous pourrez accéder et modifier toutes sortes de représentations de graphes. Vous pouvez exécuter Theano pour de nombreuses interfaces modernes.

Conclusion

PyMC3 vous aide à résoudre les prédictions statistiques bayésiennes de base et les problèmes d’inférence. Dans cet article, nous comprenons PyMC3 et ses utilisations. De plus, nous comprenons comment les réseaux bayésiens et Python vous aident à créer un modèle sophistiqué avec PyMC3.

Langages

Weekly newsletter

No spam. Just the latest releases and tips, interesting articles, and exclusive interviews in your inbox every week.