• Aucun résultat trouvé

Maintenance de la base de cas

4.5 Construction d'un diagramme états-transitions avec transitions réduites

4.5.2 Maintenance de la base de cas

L'objectif est d'optimiser la base de cas en passant par la réduction de la taille de cette dernière. Pour réaliser la maintenance de la base de cas, nous avons choisi d'ex- périmenter deux stratégies inspirées de [20] : l'ajout progressif de cas et la suppression progressive de cas.

4.5.2.1 Ajout progressif de cas

La stratégie d'ajout de cas consiste à construire une base de cas réduite en partant d'une base de cas vierge en ajoutant successivement des cas choisis dans la base de cas initiale. Le cas choisi donne la valeur maximale par rapport à un critère déterminé.

Pour matérialiser cette stratégie, nous avons considéré la méthode proposée par Smyth et McKenna [50]. Ces deux auteurs ont proposé de construire une base de cas en utilisant l'algorithme des plus proches voisins (CNN) associé à une mesure qui sera appliquée pour chaque cas an de décider s'il faut l'ajouter ou non dans la nouvelle base de cas. La mesure (Relative coverage) donne la contribution locale d'un cas à

la compétence7 globale de la base de cas. Dans la base de cas d'origine, les cas sont

rangés suivant cette mesure et l'algorithme CNN est utilisé pour construire une base de cas réduite. Pour décider s'il faut ajouter un cas dans la nouvelle base de cas, ce dernier est comparé à tous les autres cas et il est ajouté si et seulement si la plus grande similarité obtenue est inférieure à un seuil xé. L'objectif est de construire une base de cas contenant les cas les plus représentatifs de la base de cas originale et qui sont situés dans des régions diérentes. Ceci permet d'avoir une base de cas réduite mais avec une bonne compétence.

Pour les besoins de nos expérimentations, nous avons mis en place un algorithme hybride (algorithme6) basé sur cette stratégie. Nous commençons par créer une nouvelle base de cas et nous rangeons les cas contenus dans la base de cas initiale suivant un critère déterminé. Dans la base de cas ordonnée, nous comparons chaque cas avec les cas contenus dans la nouvelle base de cas. Si la plus grande similarité trouvée est inférieure à un seuil xé, nous ajoutons le cas dans la nouvelle base de cas et nous le supprimons de la base de cas initiale. En d'autres mots, un cas est ajouté dans la nouvelle base de cas si et seulement si ce dernier ne peut être résolu par un cas déjà présent dans la base étant donné un degré de similarité déterminé. Pour les besoins de nos expérimentations, nous allons considérer diérents seuils de similarité. L'opération se poursuit jusqu'à ce que toute la base de cas initiale soit traitée.

Algorithme 6 ajout-Progressif-Cas(caseBase1, critere, seuil) retourner une base de cas

entrées : caseBase1, la base de cas initiale

critere, critère à considérer dans l'ordonnancement de la base de cas seuil, seuil à considérer dans le calcul de la similarité

variables : caseBase2, une base de cas, initialement vide caseBase3, une base de cas, initialement vide sim, similarité entre deux cas, initialement vide caseBase2 ←arranger-Base-De-Cas(caseBase1, critere) Pour chaque cas dans caseBase2 faire

sim ← trouver-La-Plus-Grande-Similarité(cas, caseBase3) Si sim < seuil alors

ajouter-Cas(cas, caseBase3) supprimer-Cas(cas, caseBase2) retourner caseBase3

L'algorithme tient compte des spécicités liées aux objectifs que nous voulons at-

teindre. Les critères qui seront considérés dans l'algorithme sont les suivants :

• La f r´equence d0utilisation: les cas sont triés suivant leurs fréquences d'utilisation. La fréquence d'utilisation de chaque cas a été obtenue durant la phase d'expéri- mentation avec le diagramme brut (section4.1).

• La densit´e : les cas sont rangés suivant la densité locale de chaque cas. A la diérence du premier critère, la densité de chaque cas n'a pas été calculée durant les parties de jeux. En eet, on a fait un balayage de la base de cas et pour chaque cas nous avons calculé la densité moyenne de son voisinage, c'est à dire la similarité moyenne de ces voisins les plus proches. Nous considérons que le voisinage d'un cas est constitué par le groupe de cas qui appartiennent à la même position8. La

formule utilisée est celle proposée par Smyth et McKenna [49]. La densité locale d'un cas c ∈ C dans un groupe de cas G ⊆ C est donnée par l'équation :

CaseDensity(c, G) = P

c0∈G−{c}Sim(c, c 0) |G|−1

Pour mesurer la similarité entre un cas x et chaque cas y contenus dans la nouvelle base de cas, nous utilisons une distance métrique D(x, y). La mesure de distance que nous utilisons est la distance de Hamming [41] qui dénit D(x, y) comme le nombre d'attributs sur lesquels x et y dièrent. La stratégie de calcul est la même que celle détaillée à la section 4.3.2.

Résultats

Les résultats après les opérations de maintenance sont donnés à gure4.11. Ces résultats montrent l'évolution de la taille de la nouvelle base de cas suivant un seuil de similarité déterminé. Une analyse de ces résultats permet de ressortir un aspect important en rapport avec la taille de la nouvelle base de cas. En eet, nous pouvons noter que pour l'ensemble des critères, le nombre de cas ajouté à chaque seuil est quasiment le même.

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000 24000 26000 28000 30000 32000 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,95 1 Tai lle d e la n o u ve lle b ase d e cas Seuil de similarité

Ajout de cas - Fréquence utilisation Ajout de cas - Densité

Base de cas initiale

Densité Fréquence d'utilisation

0,1 300 300 0,2 549 542 0,3 567 564 0,4 866 942 0,5 1652 1720 0,6 4342 4561 0,7 8229 8481 0,8 11350 11536 0,9 14123 14241 0,95 18470 18470 1 18471 18471

Taille de la nouvelle base de cas Critère de rangement Seuil de similarité

Figure 4.11  Ajout progressif de cas - Variation de la taille de la nouvelle base de cas

Nous pourrions alors nous demander si les cas ajoutés sont identiques pour les diérents critères ? Étant donné le nombre élevé de cas, il est dicile de répondre à cette question. Cependant, nous pensons que l'analyse des résultats produits par les diagrammes états-transitions dérivés sera un moyen de répondre à cette question.

4.5.2.2 Suppression progressive de cas

La stratégie consiste d'abord à évaluer les cas suivant un critère. C'est sur critère que se base la suppression de cas dans l'objectif de ramener la base de cas à une taille déterminée. Pour cette stratégie, nous utilisons la méthode proposée par Minton [30] qui

consiste à oublier les cas les moins utilisés en se basant sur la fréquence d'utilisation de chaque cas. Pour matérialiser la stratégie, nous suivons l'algorithme 7. Nous éliminons progressivement un pourcentage déterminé de cas les moins utilisés. Nous commençons par éliminer 10 % des cas les moins utilisés et nous évoluons jusqu'à 100 % des cas. L'évolution de la structure de la base de cas est donnée à la gure4.12.

Algorithme 7 suppression-Progressive-Cas(caseBase1, critere, quantite) retourner une base de cas

entrées : caseBase1, la base de cas initiale

critere, critère à considérer dans l'ordonnancement de la base de cas quantite, la quantité de cas à supprimer, en terme de pourcentage variables : caseBase2, une base de cas, initialement vide

caseBase2 ←arranger-Base-De-Cas(caseBase1, critere) supprimer-Cas-Moins-Utilises(caseBase2, quantite) retourner caseBase2

% de cas à supprimer Taille de la base de cas Cas supprimés

10 26460 3092 20 23517 6035 30 20547 9005 40 17607 11945 50 14693 14859 60 11695 17857 70 8732 20820 80 5785 23767 90 2819 26733

Suppression de cas basée sur la fréquence d'utilisation d'un cas

Figure 4.12  Suppression progressive de cas - Variation de la taille de la base de cas

4.5.3 Structuration d'un diagramme états-transitions avec tran-

Documents relatifs