Projet Acquisition de connaissances INSA de Rennes Département INFO 4ième année – G2.1 Projet Acquisition de connaissances Réalisé par Anne-Laure Berrée, Andra Blaj, Stéphanie Charlet, Diana Dragusin, Daphné Dussaud, Emeline Escolivet, Nolwenn Poirier & Fanny Tollec Encadré par Peggy CELLIER
Plan Contexte et objectifs Choix effectués Description de l’outil Quelques rappels Objectifs Choix effectués Langage Algorithme Modélisation Description de l’outil Import et récupération des données Implémentation de l’algorithme Génération des itemsets fréquents maximaux ou fermés Exécution et affichage des résultats Comparaison avec Weka
Contexte et objectifs Quelques rappels Règles d’associations SI condition(s) ALORS fait(s) Weka Objectif général Extraire des règles d’associations à partir de données de la forme Notre outil Attribut 1 Attribut 2 Transaction 1 0/1 Transaction 2
Contexte et objectifs Objectifs Objectif n°1 Transformer deux types de jeux de données en la matrice Transaction/Items Objectif n°2 Implémenter un algorithme from scratch effectuant un travail semblable à Apriori Objectif n°3 Implémenter différents calculs d’indice statistique Objectif n°4 Implémenter différents types d’itemsets Objectif n°5 Comparer les performances de l’outil avec Weka
II. Choix effectués Pourquoi Java ? Langage 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
II. Choix effectués Algorithme APriori Algorithme Algorithme FP-Growth Exploration des données dans le domaine de l’apprentissage des règles d’association Reconnaissance des propriétés qui reviennent fréquemment dans un ensemble des données Algorithme FP-Growth Très proche d’Apriori Recherche basée sur la génération d’itemsets et leur fréquence Utilisation d’une 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 Comparaison des algorithmes FP-Growth Apriori Multiples parcours de la base de données Génération d’un nombre considérable d'itemsets Calcul de leur support à chaque fois Très coûteux de gérer cette quantité d'itemsets FP-Growth Réduction du nombre de parcours de la base de données Diminution du nombre de génération d'itemsets Facilité du calcul du support Plus adapté aux grandes bases de données Mise en œuvre assez difficile
II. Choix effectués Modélisation Moteur listeRegles items Attribut matrix : boolean[][] seuilSupportMin : double seuilCritereMin : double RègleAssociation ItemSet - premisse : Integer [] but : int valeurCritere : double itemset : Vector<Integer> support : double indice algoSelectionne Indice AlgoApriori Transactions : Vector<Vector<Integer>> unItems : Vector<Integer> itemsFreq : Vector<ItemSet> IndiceSupport IndiceLift IndiceConfiance APrioriMaximaux APriorisClos
III. Description de l’outil Import et mise en forme des données Données non structurées : articles de journaux Données structurées : tickets de caisse Attributs et transactions : Tickets de caisse Attributs : Mots sous forme de liste + Phase de discrétisation des données Discrétisation d’attributs continus - Âge < 20 - 20 < Âge < 40 - 40 < Âge < 60 Discrétisation d’attributs nominaux -Homme -Femme Transactions : Articles de journaux = Chirac Jospin Article 1 1 Article 2 Homme Femme Ticket 1 1 Ticket 2 =
III. Description de l’outil Implémentation de l’algorithme 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 l’outil 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)-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) fin
III. Description de l’outil Génération des itemsets fréquents maximaux ou fermés 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 finsi fin pour Implémentation similaire pour les itemsets fréquents maximaux Comparaison des résultats certaines règles pertinentes non générées en utilisant les itemsets fréquents maximaux ou fermés moins de redondance MAIS
III. Description de l’outil Exécution et affichage des résultats Démonstration de l’outil
IV. Comparaison avec Weka Tests de performance Weka Notre outil 7 itemsets 5 itemsets 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) Règles crées Eau, loi ->art ( CONF 0.9255 ) Loi ->art ( CONF 0.8571 ) Vie ->art ( CONF 0.8390 ) Eau ->art ( CONF 0.8303 ) Loi , art ->eau ( CONF 0.8285 ) Vie ->eau ( CONF 0.8218) Loi ->eau ( CONF 0.7673) Calcul avec indice statistique de confiance, et Itemsets fréquents sur le petit article : outil moins exhaustif, plus rapide et moins pertinent
Bilan Difficultés rencontrées Atouts de l’outil - Implémentation de FP-Growth Choix de la modélisation Atouts de l’outil Simplicité d’utilisation Rapidité de la générations des règles Améliorations possibles Ajouter l’algorithme FP-Growth Donner plus de choix de fichiers de données