Download - Réseaux Bayésien en Python avec pyAgrum
![Page 1: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/1.jpg)
Réseaux Bayésiens en Python avec [email protected]
![Page 2: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/2.jpg)
aGrUMUne API C++ GPL 3 depuis 2008
• Pierre-Henri Wuillemin
• Christophe GonzalesAuteurs
• Lionel TortiMainteneurs
• LIP6, INRA, IRSN
• EDF, Airbus, IBM, Engie
• Akheros, EdgeMind
• Open Turns
Utilisateurs
![Page 3: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/3.jpg)
Objectif: de la recherche à l’application
Recherche scientifiqueProjets européens
MIDAS
SCISSOR
Projets ANR
SKOOB
INCALIN
LARDONS
DESCRIBE
SUNSTONE
Une API dédiéeHyper paramétrable
Structure de données optimisées
Algorithmes optimisés
Diffuser et promouvoirWrapper Python
Documentations
Notebooks
Interventions
![Page 4: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/4.jpg)
pyAgrum: un wrapper Python d’aGrUM
❖aGrUM c’est quoi ?❖Une API C++ d’environ 300 000 lignes de code.
❖Des templates, beaucoup de templates…
❖Du code portable: GCC, MVSC, Clang, MinGW…
❖Beaucoup de tests et l’envie de faire de la qualité.
❖Pourquoi pyAgrum ?❖Un accès simplifié aux algorithmes d’aGrUM.
❖Un accès à l’écosystème Python.
❖Une intégration avec les Jupyter Notebooks.
❖Une combinaison gagnante!❖L’implémentation C++ rend pyAgrum très performant.
❖L’accès en Python rend aGrUM user friendly.
❖Bientôt des wrappers Java et R !
![Page 5: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/5.jpg)
Réseaux BayésiensEN THÉORIE
![Page 6: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/6.jpg)
Réseaux Bayésiens: c’est quoi ?Les nœuds :
◦ Des variables aléatoires.
Les arcs: ◦ Des corrélations.
Les paramètres: ◦ Des Table de Probabilités Conditionnelles (TPC).
La loi jointe:◦ Le produit des TPC.
La loi jointe est compressée sans perte d’information. 𝑃 𝐶, 𝑆, 𝑅,𝑊 = 𝑃 𝐶 . 𝑃 𝑆 𝐶 . 𝑃 𝑅 𝐶 . 𝑃(𝑊|𝑆, 𝑅)
![Page 7: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/7.jpg)
Réseaux Bayésiens: comment ?L’inférence probabiliste
◦ Calculer P(X|𝜖) où 𝜖 est une observation.◦ Quelle est la probabilité d’avoir un cancer si on est fumeur ?
◦ Quelle est la probabilité d’être fumeur si on a un cancer ?
◦ Calculer P(𝜖) où 𝜖 est un ensemble d’observations.◦ Quelle est la probabilité d’être fumeur et d’avoir un cancer ?
◦ Calculer l’explication la plus probable 𝑎𝑟𝑔max𝑥
𝑃(𝑥, 𝜖).
◦ Si je suis fumeur, quelle est mon état de santé le plus probable ?
L’apprentissage automatique◦ Apprendre la structure.
◦ C’est-à-dire le graphe.
◦ Apprendre les paramètres.◦ C’est-à-dire les Tables de Probabilités Conditionnelles.
![Page 8: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/8.jpg)
Réseaux Bayésiens: pourquoi ?❖Diagnostic automatique (HP, diagnostiques d’imprimantes).
❖Gestion des risques (EDF, sûreté nucléaire).
❖Marketing (score probabiliste).
❖Analyse de modèle probabiliste (simulations).
❖Classification (spam).
❖Apprentissage de réseaux de gènes (bio-informatique)
❖Apprentissage et modélisation d’utilisateur (agents conversationnels)
![Page 9: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/9.jpg)
Réseaux BayésiensEN PRATIQUE
![Page 10: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/10.jpg)
Titanic: Machine Learning from DisasterChallenge Kaggle basé sur le naufrage du Titanic.
L’objectif est de prédire si un passager va survivre au naufrage.
Pour cela nous allons avoir trois approches:◦ Une approche expert.
◦ Une approche de machine learning.
◦ Une approche combinant les deux approches précédentes.
![Page 11: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/11.jpg)
Réseaux BayésiensL’APPROCHE EXPERT
![Page 12: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/12.jpg)
L’approche expertAucun apprentissage automatique !
◦ Donnée inexistante ou inutilisable.
◦ Des experts du domaines disposés à nous aider.
La première étape consiste à définir les variables de notre réseau:◦ Le genre: féminin ou masculin.
◦ L’âge: nourrisson, petit enfant, grand enfant, adolescent, adulte et personne âgée.
◦ Fratries: présence ou non de proches (enfants, frères et sœurs, mari et femme).
◦ Parents: présence ou non de parents (parents, grands-parents).
◦ Survivant: vrai si le passager a survécu, faux sinon.
![Page 13: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/13.jpg)
L’approche expert
![Page 14: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/14.jpg)
L’approche expert
![Page 15: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/15.jpg)
L’approche expert
![Page 16: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/16.jpg)
L’approche expert
![Page 17: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/17.jpg)
L’approche expert
![Page 18: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/18.jpg)
L’approche expert
![Page 19: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/19.jpg)
L’approche expert
55% de bonnes prédictions lorsque nous la confrontons à la base de test
![Page 20: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/20.jpg)
Réseaux BayésiensL’APPROCHE MACHINE LEARNING
![Page 21: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/21.jpg)
L’approche Machine Learning99% d’apprentissage automatique
◦ Il vaut mieux définir les variables aléatoires.◦ Par contre nous allons presque toutes les utiliser !
◦ On ignore les lignes incomplètes.◦ Mais nous pourrions utiliser EM !
Les variables supplémentaires:◦ Embarquement: le port d’embarquement.
◦ La classe : la classe de la cabine.
![Page 22: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/22.jpg)
L’approche Machine Learning
![Page 23: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/23.jpg)
L’approche Machine Learning
![Page 24: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/24.jpg)
L’approche Machine Learning
![Page 25: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/25.jpg)
L’approche Machine Learning
![Page 26: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/26.jpg)
L’approche Machine Learning
85% de bonnes prédictions lorsque nous la confrontons à la base de test
![Page 27: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/27.jpg)
Réseaux BayésiensLE MEILLEUR DES DEUX MONDES
![Page 28: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/28.jpg)
L’approche combinéeParfois nous avons à la fois:
◦ Des données exploitables.
◦ Des experts disponibles.
L’apprentissage automatique est très efficace pour calculer des probabilité.
L’expert est très efficace pour exprimer des relations de corrélation ou de causalité.
Et si nous utilisons le graphe de l’expert et l’apprentissage automatique sur les paramètres ?
![Page 29: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/29.jpg)
L’approche combinée
![Page 30: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/30.jpg)
L’approche combinée
![Page 31: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/31.jpg)
L’approche combinée
![Page 32: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/32.jpg)
L’approche combinée
95% de bonnes prédictions lorsque nous la confrontons à la base de test
![Page 33: Réseaux Bayésien en Python avec pyAgrum](https://reader030.vdocuments.pub/reader030/viewer/2022012804/61bd26c161276e740b0fe2c2/html5/thumbnails/33.jpg)
ConclusionPour tout savoir sur aGrUM et pyAgrum : http://agrum.gitlab.io/
N’hésitez pas à nous contacter !
Sur GitLab : https://gitlab.com/agrumery/aGrUM
Sur le gitter: https://gitter.im/aGrUMers/Lobby
Sur la mailing list: https://mailia.lip6.fr/wws/info/agrum-users
Par email: [email protected]
MERCI !