Projet Acquisition de connaissances Réalisé par Anne-Laure B ERRÉE, Andra Maria B LAJ, Stéphanie C HARLET, Diana D RAGUSIN, Daphné D USSAUD, Emeline E SCOLIVET, Nolwenn P OIRIER & Fanny T OLLEC Encadré par Peggy CELLIER INSA de Rennes Département INFO 4 ième année – G2.1 1
Plan I.Contexte et objectifs II.Choix effectués III.Description de loutil IV.Comparaison avec Weka 2
I.Contexte et objectifs WekaWeka Notre outil Règles dassociations SI condition(s) ALORS fait(s) Quelques rappels Objectif général Extraire des règles dassociations à partir de données de la forme Item 1Item 2 Transaction 10/1 Transaction 20/1 3
I.Contexte et objectifs Objectif n°2 Implémenter un algorithme from scratch effectuant un travail semblable à Apriori Objectifs Objectif n°3 Implémenter différents calculs dindice statistique Objectif n°4 Implémenter différents types ditemsets Objectif n°5 Comparer les performances de loutil avec Weka Objectif n°1 Transformer deux types de jeux de données en la matrice Transaction/Items 4
II. Choix effectués Langage Pourquoi Java ? Langage orienté objet permettant une modélisation simple et rapide Présence de structures de données facilement manipulables Import des fichiers relativement aisé Facilité de mise en place dune interface graphique Multiplateforme 5 Emeline
II. Choix effectués Algorithme 6 Algorithme Apriori Algorithme FP-Growth Emeline/Andra
II. Choix effectués Algorithme 7 Comparaison des algorithmes Emeline/Andra
- String attribut - Integer premisse[] - int but - double valeurCritere - Integer premisse[] - int but - double valeurCritere -Vector > transactions - Vector unItems - Vector itemsFreq -Vector > transactions - Vector unItems - Vector itemsFreq - boolean[][] matrix - double seuilSupportMin - double seuilCritereMin - boolean[][] matrix - double seuilSupportMin - double seuilCritereMin II. Choix effectués Modélisation RègleAssociation Attribut Indice Moteur AlgoApriori IndiceLift IndiceSupport IndiceConfiance 8
III. Description de loutil 9 Import et mise en forme des données Attributs : Mots sous forme de liste Attributs : Mots sous forme de liste Objets : Articles de journaux Objets : Articles de journaux + = ChiracJospin Article 101 Article 211 Données non structurées : articles de journaux Discrétisation dattributs nominaux -Homme -Femme Discrétisation dattributs nominaux -Homme -Femme Données structurées : tickets de caisse Attributs et objets : Tickets de caisse Attributs et objets : Tickets de caisse Phase de discrétisation des données Discrétisation dattributs continus - Âge < < Âge < < Âge < 60 Discrétisation dattributs continus - Âge < < Âge < < Âge < 60 HommeFemme Ticket 101 Ticket 210 =
III. Description de loutil 10 Implémentation de lalgorithme 1. Transformation des données de matrice booléenne en transactions 2. Génération des un-imtemsets fréquents 3. Génération des 2-itemsets fréquents
III. Description de loutil 11 Implémentation de lalgorithme constructionkItemsSets ( entier k, entier supportMin ) si ( il y a eu des k-1 - itemsets générés) alors pour chaque i temset i de taille k-1 faire pour chaque itemset j de taille k-1 différent de i faire si ( i et j sont différents que par le dernier élément) alors kItem = i+dernier élément de j tri de kItem en ordre croissant des items supportItem = support de kItem si ( supportItem>=supportMin ) alors ajouter kItem et son support dans la liste des itemsets fréquents finsi fin pour si ( k+1 est inférieur au cardinal de la liste de 1- itemsets fréquents ) alors constructionkItemsSets ( k+1, support ) ; finsi fin 4. Génération des k-itemsets fréquents
12 III. Description de loutil Génération des itemsets fréquents maximaux ou fermés Stratégie : modifier lalgorithme Apriori pour supprimer les itemsets fréquents non fermés ou non maximaux lors de leur génération Idée de limplémentation pour les itemsets fréquents fermés : Au moment où on construit un (k+1)- itemset J à partir de 2 k-itemset, Si J est fréquent alors Pour chaque k-itemset I, Si I est inclus dans J et I est de même support que J alors I nest pas clos, donc on le supprime Fin si Fin Pour Fin Si Implémentation similaire pour les itemsets fréquents maximaux Comparaison des résultats : moins de redondance MAIS certaines règles pertinentes ne sont pas générées en utilisant les itemsets fréquents maximaux ou fermés
III. Description de loutil 13 Exécution et affichage des résultats Anne-Laure (on pourrait inclure la démo là!)
IV. Comparaison avec Weka WekaOutil créé 14 Calcul avec indice statistique de confiance, et Itemsets fréquents sur le petit article : outils moins exhaustif, plus rapide et moins pertinent. Tests de performance Règles crées 1. france=no politique=no président=no monde=no foi=no ==> national=no conf:(0.92) 2. france=no politique=no président=no foi=no ==> national=no conf:(0.92) 3. france=no américain=yes ==> national=no conf:(0.92) 4. france=no politique=no président=no monde=no ==> national=no conf:(0.92) 7 Calculs dItemsets Règles crées Eau, loi ->art ( CONF ) Loi ->art ( CONF ) Vie ->art ( CONF ) Eau ->art ( CONF ) Loi, art ->eau ( CONF ) Vie ->eau ( CONF ) Loi ->eau ( CONF ) 5 Calculs dItemsets
Bilan 15 Difficultés rencontrées Atouts de loutil - Choix de modélisation - Mise en commun - Choix de modélisation - Mise en commun - Choix de modélisation - Mise en commun - Choix de modélisation - Mise en commun