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
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 Attribut 1Attribut 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
II. Choix effectués Algorithme 6 Algorithme APriori Algorithme FP-Growth Algorithme FP-Growth Exploration des données dans le domaine de lapprentissage des règles dassociation Reconnaissance des propriétés qui reviennent fréquemment dans un ensemble des données Très proche dApriori Recherche basée sur la génération ditemsets et leur fréquence Utilisation dune structure de données : Frequent-Pattern tree permettant de trouver des itemsets fréquents dans une grande base de données
II. Choix effectués Algorithme 7 Comparaison des algorithmes Apriori Multiples parcours de la base de données Génération dun nombre considérable d'itemsets Calcul leur support à chaque fois Très coûteux de gérer cette quantité d'itemsets FP-Growth FP-Growth Réduction du nombre de parcours de la base de données Diminution du nombre de génération d'itemsets Facilite le calcul du support Plus adapté aux grandes bases de données Mise en œuvre assez difficile
- premisse : Integer [] - but : int -valeurCritere : double - premisse : Integer [] - but : int -valeurCritere : double -Transactions : Vector > - unItems : Vector - itemsFreq : Vector -Transactions : Vector > - unItems : Vector - itemsFreq : Vector - matrix : boolean[][] - seuilSupportMin : double - seuilCritereMin : double - matrix : boolean[][] - seuilSupportMin : double - seuilCritereMin : double II. Choix effectués Modélisation RègleAssociation Attribut Indice Moteur AlgoApriori IndiceConfiance IndiceSupport IndiceLift 8 APrioriMaximaux APriorisClos ItemSet -itemset : Vector - support : double -itemset : Vector - support : double algoSelectionne listeRegles items indice
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 Transactions : Articles de journaux Transactions : Articles de journaux + = ChiracJospin Article 101 Article 211 Données non structurées : Données non structurées : articles de journaux Discrétisation dattributs nominaux -Homme -Femme Discrétisation dattributs nominaux -Homme -Femme Données structurées : Données structurées : tickets de caisse Attributs et transactions : Tickets de caisse Attributs et transactions : 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 la matrice booléenne en transactions 2. Génération des un-itemsets fréquents 3. Génération des 2-itemsets fréquents
III. Description de loutil 11 Implémentation de lalgorithme 4. Génération de k-itemsets fréquents constructionkItemsSets(entier k, entier supportMin) si (il y a eu des (k-1)-itemsets générés) alors pour chaque itemset 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
12 Stratégie modifier lalgorithme Apriori pour supprimer les itemsets fréquents non fermés ou non maximaux lors de leur génération Au moment où on construit un (k+1)-itemset J à partir de 2 k-itemsets, 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 finsi fin pour finsi Comparaison des résultats Comparaison des résultats Génération des itemsets fréquents maximaux ou fermés certaines règles pertinentes non générées en utilisant les itemsets fréquents maximaux ou fermés MAIS Implémentation similaire pour les itemsets fréquents maximaux moins de redondance 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 : outil 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 itemsets 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 itemsets
Bilan 15 Difficultés rencontrées Difficultés rencontrées Atouts de loutil Atouts de loutil - Implémentation de FP-Growth - Choix de la modélisation - Implémentation de FP-Growth - Choix de la modélisation - Choix de modélisation - Mise en commun - Choix de modélisation - Mise en commun