Documentation du code

class id3.ID3

Instance de classification ID3

construit_arbre(attributs, exemples, classes)

Construit un arbre de decision a partir des exemples d’apprentissage

Paramètres:
  • attributs – un dictionnaire qui fait correspondre chaque attribut a son domaine de valeurs
  • exemples (list) – les exemples pour l’apprentissage [classe, {attribut -> valeur}]
  • classes (list) – les classes des exemples
Retourne:

une instance Noeud correspondant a la racine de l’arbre

entropie(attribut, valeurs, exemples, classes)

H(C|A) - l’entropie de la classe apres avoir choisi de partitionner les exemples suivant les valeurs de l’attribut A

Paramètres:
  • attribut – l’attribut A
  • valeurs (list) – les valeurs a_j de l’attribut A
  • exemples (list) – les exemples pour l’apprentissage
  • classes (list) – les classes des exemples
Retourne:

H(C|A)

entropie_conditionnelle(attribut, valeur, exemples, classes)

H(C|a_j) - l’entropie de la classe parmi les exemples pour lesquels l’attribut A vaut a_j

Paramètres:
  • attribut – l’attribut A
  • valeur – la valeur a_j de l’attribut A
  • exemples (list) – les exemples pour l’apprentissage
  • classes (list) – les classes des exemples
Retourne:

H(C|a_j)

p(attribut, valeur, exemples, classe=None)

p(a_j) - la probabilite que la valeur de l’attribut A soit a_j. p(c_i | a_j) - la probabilite conditionnelle que la classe soit c_i etant donne que l’attribut A vaut a_j

Paramètres:
  • attribut – l’attribut A
  • valeur – la valeur a_j de l’attribut A
  • exemples (list) – les exemples pour l’apprentissage
  • classe – None ou une classe c_i des exemples
Retourne:

si classe est None p(a_j), sinon p(c_i | a_j)

partitions(attribut, valeurs, exemples)

Partitionne les exemples sur les valeurs d’un attribut.

Paramètres:
  • attribut – l’attribut A de partitionnement
  • valeurs (list) – les valeurs a_j de l’attribut A
  • exemples (list) – les exemples a partitioner
Retourne:

une liste de liste. Chaque sous-liste l_j contient les exemples pour lesquels l’attribut A vaut a_j

class id3.Noeud(attribut, exemples, enfants=None)

Un noeud de l’arbre de decision ID3

__init__(attribut, exemples, enfants=None)
Paramètres:
  • attribut – l’attribut de partitionnement du noeud (None si le noeud est terminal)
  • exemples (list) – la liste des exemples qui tombent dans la sous-classification du noeud
  • enfants (list) – liste des enfants du noeud (None si le noeud est terminal)
classe()

Si le noeud est terminal, retourne la classe des exemples

Si le noeud est terminal, tous les exemples qui tombent dans la sous-classification du noeud font partie de la meme classe

classifie(exemple)

Classe un exemple a l’aide d’un arbre de decision

Paramètres:exemple – l’exemple a classifier
Retourne:la classe de l’exemple selon l’arbre de decision
terminal()

Verifie si le noeud est terminal