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 l’outil IV.Comparaison avec Weka 2
I.Contexte et objectifs WekaWeka Notre outil Règles d’associations Règles d’associations SI condition(s) ALORS fait(s) Quelques rappels Objectif général Objectif général Extraire des règles d’associations à partir de données de la forme Item 1Item 2 Transaction 10/1 Transaction 20/1 3
I.Contexte et objectifs Objectif n°2 Objectif n°2 Implémenter un algorithme from scratch effectuant un travail semblable à Apriori Objectifs Objectif n°3 Objectif n°3 Implémenter différents calculs d’indice statistique Objectif n°4 Objectif n°4 Implémenter différents types d’itemsets Objectif n°5 Objectif n°5 Comparer les performances de l’outil avec Weka Objectif n°1 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 d’une interface graphique Multiplateforme 5
II. Choix effectués Algorithme 6 Algorithme Apriori Algorithme FP-Growth Algorithme d’exploration des données dans le domaine de l’apprentissage des règles d’association Permet de reconnaître des propriétés qui reviennent fréquemment dans un ensemble des données Algorithme très proche d’Apriori, basé sur des recherches sur la génération d’itemsets et leur fréquence Utilise une structure de données appélée Frequent- Pattern tree qui permet de trouver des itemsets fréquents dans une grande base de données
II. Choix effectués Algorithme 7 Comparaison des algorithmes Apriori nécessite de multiples parcours de la base de données, génère un nombre considérable d'itemsets et calcule leur support à chaque fois Très coûteux de gérer cette quantité d'itemsets, car il faut tester la fréquence de chacun des itemsets FP-Growth réduit le nombre de parcours de la base de données à effectuer, diminue considérablement le nombre de génération d'itemsets et 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 l’outil 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 d’attributs nominaux -Homme -Femme Discrétisation d’attributs 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 d’attributs continus - Âge < < Âge < < Âge < 60 Discrétisation d’attributs continus - Âge < < Âge < < Âge < 60 HommeFemme Ticket 101 Ticket 210 =
III. Description de l’outil 10 Implémentation de l’algorithme 1. Transformation des données de matrice booléenne en transactions 2. Génération des un-imtemsets fréquents 3. Génération de 2-itemsets fréquents
III. Description de l’outil 11 Implémentation de l’algorithme 4. Génération de k-itemsets fréquents constructionkItemsSets ( entier k, entier supportMin ) si ( il y a eu des k-1 - i t emsets 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
12 Stratégie Stratégie modifier l’algorithme 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 n’est pas clos, donc on le supprime Fin si Fin Pour Fin Si 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 l’outil
13 Exécution et affichage des résultats Anne-Laure (on pourrait inclure la démo là!)
IV. Comparaison avec Weka 14 Fanny
Bilan 15 Difficultés rencontrées Atouts de l’outil - 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