Modélisation de l’incertitude — Master 2 MIAGE IA
2Travaux dirigés N
◦2 : Raisonnement probabiliste
Andrea G. B. Tettamanzi Université côte d’Azur
andrea.tettamanzi@univ-cotedazur.fr Année universitaire 2020/2021
Résumé
On va comparer la classification bayésienne naïve avec un réseau bayésien à l’aide d’un jeu de données bien connu.
1 Introduction
Pour cette séance de TD, on va utiliser le célèbre jeu de données “Chess” (King-Rook vs. King- Pawn, ou roi + tour contre roi + pion), créé et décrit pour la première fois par Alen Shapiro [2]
et disponible dans le Machine Learning Repository de l’Université de Californie à Irvine, à la pagehttps://archive.ics.uci.edu/ml/datasets/Chess+(King-Rook+vs.+King-Pawn).
2 Consignes
1. On commencera par récupérer les données brutes en ligne. Le fichier ks-vs-kp.data contient une decription du jeu de données ainsi que les noms des 36 attributs disponibles pour prédire la classe de chacun enregistrement. C’est un problème de classification bi- naire : on veut savoir si le blanc peut gagner ou pas. On appellera çaclass.
2. Appliquer à ce problème la classification bayésienne naïve.
3. Maintenant, on va construire un réseau bayésien, en considérant la liste de dépendances suivante (obtenue avec l’algorithme RSMAX2 [1], avec quelques ajustements manuels) :
— hdchk← mulch ;
— rxmsq← qxmsq ;
— simpl← bkon8 ;
— wkcti ←cntxt ;
— wkna8← cntxt ;
— bkspr← rxmsq ;
— wkpos← cntxt, wkna8 ;
— bkona← bkspr ;
— bkxcr ←bkspr ;
— dsopp← bkspr, rxmsq ;
— reskr ←wkcti, wkpos ;
— bkxbq← bkona, bkxcr ;
— bkxwp ← bkxcr ;
— dwipd ←reskr, wkcti ;
— rimmx← bkxcr ;
— blxwp ←bkxwp, rkxwp ;
1
bkon8
cntxt
mulch
qxmsq reskd
rkxwp skach
spcop stlmt
hdchk
rxmsq simpl
wkcti
wkna8
bkspr
wkpos
bkona bkxcr
dsopp
reskr
bkxbq bkxwp
dwipd
rimmx blxwp
r2ar8
wknck
bknwy
skrxp
wkovl bxqsq
class thrsk
wtoeg skewr
katri
bkblk
Figure 1 – Structure du réseau bayésien pour la classification du jeu de donnée “chess”.
— r2ar8← dwipd ;
— wknck← rimmx ;
— bknwy← mulch, r2ar8 ;
— skrxp ←bkona, wknck ;
— wkovl← r2ar8 ;
— bxqsq ←bkxwp, rimmx, rkxwp, wkovl ;
— thrsk← bkxbq, skrxp ;
— wtoeg ← cntxt, skrxp ;
— skewr ←cntxt, wtoeg ;
— katri ← cntxt, dwipd, bkblk ;
— class← bkxbq, bxqsq, rimmx, wknck, katri.
Les dix variables bkblk, bkon8, cntxt, mulch, qxmsq, reskd, rkxwp, skach, spcop et stlmt ne dépendent pas des autres.
Le graphe dirigé acyclique correspondant à cette structure de réseau bayésien est montrée, pour votre convenance, en Figure 1.
4. Notez qu’on est dans le premier scénario mentionné au transparent n◦20 : la structure est donnée (construite à la main à l’étape précédente) et toutes les variables sont observables (les observations sont les enregistrements du jeu de données). On doit donc « apprendre »
2
juste les tables de probabilités conditionnelles. En fait, plus que d’apprentissage, il s’agit de faire les calculs, en estimant ces probabilités sur la base des fréquences des observations.
5. Utlisez ce réseau bayésien avec les tables de probabilités ainsi calculées pour faire la classification de ce jeu de données.
6. Comparez et discutez les résultats de ces deux modèles.
Rendez votre code et vos observations dans un archive zippé par courriel.
Références
[1] Marco Scutari. Bayesian network constraint-based structure learning algorithms : Parallel and optimised implementations in the bnlearn R package. CoRR, abs/1406.7648, 2014.
[2] Alen Shapiro. Structured Induction in Expert Systems. Addison-Wesley, 1987.
3