150 likes | 223 Views
INSA de Rennes Département INFO 4 iè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.
E N D
INSA de Rennes Département INFO 4ième année – G2.1 Projet Acquisition de connaissances Réalisé par Anne-Laure Berrée,AndraBlaj, Stéphanie Charlet, Diana Dragusin, Daphné Dussaud, Emeline Escolivet, Nolwenn Poirier & Fanny Tollec Encadré par Peggy CELLIER
Plan • Contexte et objectifs • 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
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 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
II. Choix effectués Algorithme • Algorithme APriori • 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 • 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 listeRegles items Moteur 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 = =
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-itemsetsfré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-itemsetsfré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 pourchaqueitemset 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 itemsetsfréquents finsi finsi finpour finpour si (k+1 est inférieur au cardinal de la liste de 1-itemsets fréquents) alors constructionkItemsSets(k+1, support) finsi finsi 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 finpour finsi • 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 • Notre outil Weka • 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 Itemsetsfréquents sur le petit article : outil moins exhaustif, plus rapide et moins pertinent
Bilan • Difficultés rencontrées • - 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