Afin# d’évaluer# la# capacité# d’apprentissage# par# arbres# de# décision,# nous# allons# générer# des# jeux# de#
données#décrits#par#un#nombre#N#d’attributs#et#étiquetés#selon#un#concept#cible#que#nous#définirons#
en#terme#d’un#arbre#de#décision.#De#cette#manière,#nous#pourrons#voir#si#l’arbre#appris#correspond#à#
l’arbre#cible#que#nous#avons#défini.##
Rq#:#le#programme#permet#d’engendrer#des#arbres#avec#un#facteur#de#branchement#quelconque#(voir#
le# paramètre# nb_valeurs),#mais#pour# des# raisons# de# simplicité,#nous# nous#limiterons#ici#à#des#arbres#
binaires#(deux#branches#/#nœud)#et#à#deux#classes#:#‘+’#et#‘J‘.##
La# fonction# 8$'+:%9)FD+&'LM+&'F'5'*6<'&N( )DF+::$%D2:&N( )DF'5'*6<'&N( O$D$'P%D<'Q#du#module#
:6F+,"6R#permet#de#créer#une#base#d’exemples.##
E.g.#8$7+:%9)FD+&'(L-D,F'5'*6<'&F!SF!SS":+D0N(!SN(!SSN(TUO!UN(TSN(UVUWN(T!N(TUO?UN(TSNUXUWN(T!NUVUWWWWQ#crée#
une#base#de#100#exemples#décrits#sur#10#attributs#et#étiquetés#selon#l’arbre#cible#['A1',#[0,#'+'],#[1,#['A3',#
[0,'J'],#[1,'+']]]].##
>2'&:%9)(!#:#créez#des#bases#d’exemples#avec#des#nombres#variables#d’attributs#(≥#6)#et#des#nombres#
variables#d’exemples#étiquetées#selon#l’arbre#:##
['A1',##[0,##['A6',##[0,#'+'],##
###[1,##['A2',#[0,##['A5',#[0,#'+'],#[1,#'J']]],##
#####[1,#'+']]]]],##
#[1,#['A3',#[0,#'J'],##
###[1,##['A2',##[0,# ['A4',#[0,#'+'],#[1,#'J']]],##
####[1,#'J']]]]]]#
• Dessinez#l’arbre#correspondant.#
• Pour#quelles#valeurs#des# nombres#d’attributs#et#nombres#d’exemples#peutJon#retrouver#une#
bonne# approximation# de# l’arbre# cible#:# les# bons# attributs,# éventuellement#bien#placés#dans#
l’arbre#appris#?#
Nous# allons# maintenant# étudier# l’effet( du( taux( de( bruit( et# du(taux(de(valeurs(manquantes#sur#
l’apprentissage.#Pour#cela,#après#avoir#créé#une#base#d’exemples#selon#la#méthode#précédente,#vous#
utiliserez#la#fonction#D$2%:'F'5'*6<'&(LM+&'Y92$8'N(M+&'P%D<'N(O::$%D2:N(#92$8'):N(*+)K2+):'&Q#pour#
bruiter#ces#données.##
• Le# paramètre# O::$%D2:#permet#de#spécifier#sur#quel#attribut#on#souhaite#faire#porter#le#
bruitage#(e.g.#‘A1’).#Si#Attribut#vaut#False,#tous#les#attributs#seront#bruités.#
• Le#paramètre##92$8'):#spécifie#le#pourcentage#de#valeurs#bruitées.#(E.g.#30#pour#30%)#
• Le#paramètre#*+)K2+):'&#détermine#le#type#de#bruit#subit#par#la#BaseSource.#Si#manquantes#
vaut#False,#alors#il#s’agit#d’un#bruit#de#description,#si#manquantes#vaut#True,#alors#il#s’agit#d’un#
bruitage#par#valeurs#manquantes.#
Ainsi,# D$2%:'F'5'*6<'&( LU:$''F!SF!SS":+DUN( U:$''FD$2%:F!SF!SS":+DUN( 1+<&'N( ZSN( 1+<&'Q#crée#la#base#
d’exemples#tree_bruit_10_100.tab#à#partir#de#la#base#tree_10_100.tab#en#bruitant#tous#les#attributs#
avec#un#taux#de#70%#(70%#des#valeurs#sont#modifiées).#
Vous#pourrez#examiner#le#code#de#la#fonction#avec#profit.##
>2'&:%9)(3#:#Bruitez#des#bases#sources#sur#un#seul#attribut#selon#des#taux#variables#et#mesurez#l’effet#
sur#l’apprentissage.#
>2'&:%9)(?#:#idem,#mais#en#bruitant#tous#les#attributs.#
>2'&:%9)(@#:#Refaire#les#mêmes#expériences#en#imposant#des#valeurs#manquantes#(sur#un#attribut#et#
sur#tous#les#attributs).#