Docstoc

Introduction au data mining - Université de Versailles Saint-Quentin

Document Sample
Introduction au data mining - Université de Versailles Saint-Quentin Powered By Docstoc
					Fouille de données (Data Mining)
             Partie II


                                 Karine Zeitouni

                             ISTY - 3ème année

           Université de Versailles Saint-Quentin

                              Edition 2011-2012
II. Principales techniques
    Plan Général du Cours

    1.   Introduction
    2.   Principales techniques
         1.   Motifs fréquents
         2.   Associations
         3.   Classification et prédiction
         4.   Groupage et segmentation
         5.   Préparation des données
         6.   Filtrage et validation
         7.   Méthodologie et Standards
    3.   Fouille de données complexes
         1.   Motifs séquentiels
         2.   Fouille de texte 
         3.   Fouille de données spatiales et spatiotemporelles
    4.   Etude de cas

3                                   K. Zeitouni          Fouille de données
    Tâches génériques du DM (1)

    v   Analyse dans une optique exploratoire (descriptive)
        –   Classification automatique d'objets (= Clustering)
             l   se base sur une mesure de similarité pour grouper les données
        –   Description synthétique d'un ensemble d'objets
             l   La généralisation simplifie les données en diminuant les détails 
                 sémantiques
             l   Analyse factorielle, feature selection, SVD
                   –   permet de réduire N dimensions en P facteurs (technique de projection)




4                                         K. Zeitouni               Fouille de données
    Tâches génériques du DM (2)

    v   Analyse exploratoire (suite)
        –   Recherche de dépendances
             l   Analyse de correspondances
             l   Recherche d ’associations
                   –   Ex1 : ordinateur et imprimante fréquemment achetés ensemble
                   –   Ex2 : télé => magnétoscope (à 75%)

        –   Détection de tendances et de déviations
             l   efface l’influence des données extrêmes ou atypiques
             l   détecte les déviations en utilisant des tests statistiques sur 
                 les écarts.


5                                      K. Zeitouni           Fouille de données
        Tâches génériques du DM (3)
    v   Analyse dans une optique décisionnelle
        –   Recherche de règles de classement d'objets
             l   Identifier les classes (var. à expliquer) en fct. de variables 
                 explicatives.
                   – résultat : soit règle (si ...alors), soit arbre de décision ou Réseaux 
                     Neuronal
        –   Régression
             l   Découverte de liens numériques au sein des données
                   –   expriment un lien entre les variables sous forme de fonction 
                       mathématique




6                                          K. Zeitouni              Fouille de données
II.1. Associations
     Règles d’association

    v Définition :
        –   Soient I= {i1, …, in} un ensemble d’items (articles)
        –   et T = {t1, …, tm} / ti partie de I, un ensemble de transactions
        –   Une règle d’association est une « implication » de de la forme :



        interprétée “ les transactions de T contenant X tendent à contenir Y ”
        Basée sur le calcul de 2 indicateurs
             l support s et confiance c
             l l’analyste fixe les seuil minimaux de support et de confiance
             l Seules les règles respectant ces seuils sont retenues




8                                  K. Zeitouni           Fouille de données
    Règles d’association

    v Exemple




    exprime le fait que :
    1.72% des clients qui s’équipent d’ordinateurs et 
    d’imprimantes en même temps s’équipent aussi de 
    scanners,
    2.et que ces clients représentent 20% du nombre total de 
    clients.


9                          K. Zeitouni      Fouille de données
     Règles d ’association

     –   Une règle a un support (= support de X U Y )




     –   Une règle a une confiance (= pourcentage de transactions de T 
         qui contiennent Y parmi celles qui contiennent X.)




     ·   Une règle est dite solide 
          ·   si son support est supérieur ou égal à un support minimal fixé et si sa 
              confiance est supérieure à une confiance minimale donnée


10                                    K. Zeitouni             Fouille de données
     Algorithme APRIORI

     Décomposé en deux phases :
     v   Phase  1 :  trouver  tous  les  ensembles  d’items 
         fréquents 
         –   ayant des supports suffisants


     v   Phase 2 : générer à partir de ces ensembles d’items 
         fréquents des règles d’associations solides
         –   ayant des confiances suffisantes


11                            K. Zeitouni       Fouille de données
     APRIORI - Phase 1

     Algorithme Apriori - Phase I
     Entrée : MinSup et BD
     Sortie : ensemble L d’ensembles d’items fréquents
     Méthode :
     K=1 ;L=Æ ;
     C1= {Candidats de taille 1} ;
     L1=Gen_Frequent(1,C1) ; L=LÈL1 ;
     Répéter 
           K=K+1 ;
           Ck =Gen_Candidats(K,Lk-1) ;
           Lk=Gen_Frequents(K,Ck) ;
           L=LÈLk ;
      jusqu'à Lk=Æ ;
12                       K. Zeitouni    Fouille de données
     APRIORI - Phase 2

     Algorithme Apriori - Phase II
     Entrée : MinConf, L ensemble d’items fréquents
     Sortie : ensemble R de règles d’associations
     Méthode :
     R=Æ ;
     Pour chaque ensemble I de L
       Pour chaque sous ensemble S non vide de I
           Conf (S ® I-S) = Sup(I)/Sup(S)
           Si Conf >= MinConf 
                  r= “ S ® ( I-S ) ” ;
                  R=R È {r} ;
           Fin Si
13                        K. Zeitouni    Fouille de données
     Table en entrée (2 formats possibles)

     v   Table normalisée




     v  Avec attribut multivalué
         



14                          K. Zeitouni   Fouille de données
      Apriori par l’exemple
     Avec support=2

          base D
                                                  L1
                          C1

                      Scan D



                          C2                              C2
     L2                                          Scan D




          C3              Scan D        L3


15                                 K. Zeitouni            Fouille de données
     Optimisation d’APRIORI

     v   Inconvénient : N passes sur la base
         –   une pour 1, 2, …N-ensembles, N étant la taille du 
             plus grand ensemble fréquent
         –   comptage des ensembles fréquents par 
             transactions en parcourant la table


     v   Trouver les produits d'une transaction peut 
         nécessiter de la mémoire si table normalisée



16                             K. Zeitouni       Fouille de données
     Algorithme A-Priori Partition[SON95] 

     v   La base est divisée en N             v   Exploration de l ’union 
         partitions                               des ensembles 
         –   chaque partition tient en            fréquents sur la base
             mémoire
                                                  –   comptage en une passe
         –   les partitions peuvent être 
             traitées en parallèle                –   élimination des 
                                                      ensembles non fréquents
     v   Chaque partition est traitée 
         indépendamment               v Avantage
         –   découverte des ensembles             –   deux passes au plus
             fréquents pour chaque                –   parallélisable facilement
             partition
     v   Remarque
         –   un ensemble fréquent doit 
             l’être dans au moins une 
             partition
17                                  K. Zeitouni               Fouille de données
     Apriori-tid [Agrawal et Skirant VLDB 94]

     v   Optimisation de Apriori
         –   chaque transaction a un tid
         –   liste de tid par k-ensemble
         –   Calcul d'un k-ensemble
              l   Intersection des deux listes de tid des deux (k-1) 
                  ensembles sources
              l   La première passe permet d’éliminer les produits non 
                  fréquents (moins de tid)
     v   Inconvénient
         –   les listes sont lourdes et doivent être gardées en 
             mémoire
         –   inefficace si les listes ne tiennent pas en mémoire

18                                  K. Zeitouni          Fouille de données
     Comptage par Bitmap [GPW98]

     v   Utilisation d'index bitmaps
         –   2 versions : 1-BM à 1 niveau et 2-BM multi-niveaux 

     v   Construction en une passe
     v   Comptage rapide en mémoire
     v   Intersection, Union, Négation très efficaces




19                             K. Zeitouni       Fouille de données
     Les index bitmap

       Ménagère  Produits Prix            P1 P2 P3P4P5P6
       1  {P1, P3, P5}   120              1    0  1   0         1       0
       2  {P2, P3}        70              0    1  1   0         0       0
       3      {P4}      150               0    0  0   1         0       0
       4  {P2, P5}      110               0    1  0   0         1       0
       5  {P3,P4,P6}   220                0    0  1   1         0       1

                                               0-100   100-200    200-300
                                               0        1         0
     SELECT Ménagère WHERE                     1        0         0
     (P2 OR P3) AND Prix<200                   0        1         0
                                               0        1         0
                                               0        0         1
20                               K. Zeitouni           Fouille de données
     Bitmaps (1-BM) versus Apriori-tid

     v   Plus compactes : N*P bits contre N*K 16 bits 
     v   Plus rapides : Opérations logiques au lieu de tri-fusion
     On peut regrouper chaque séquence de 16  bits => groupe 0, groupe 1, etc.

     Groupe 0: 0 1 2 3 4 5 6 7 8           9     10 11 12 13 14 15
               0 0 1 0 1 0 1 0 0           0     0 1 0 0 0 0

     Groupe 1: 0 1 2 3 4 5 6 7 8          9      10 11 12 13 14 15
               0 0 0 0 0 0 0 0 0          0      0 0 0 1 0 0

     Groupe 2: 0 1 2 3 4 5 6 7 8           9     10 11 12 13 14 15
               0 0 1 0 0 0 0 0 0           1     0 0 0 0 0 0
                                    Bitmap niveau 1


21                                 K. Zeitouni             Fouille de données
     Bitmap hiérarchique (2-BM)

     v   Rajoute un (ou des) niveaux supplémentaires 
         de Bit-map (codage par 1 bit à 0 d’un groupe 
         ne contenant que des 0, 1 sinon).




22                         K. Zeitouni    Fouille de données
     L'algorithme
     v   1-BM
         –   Génération d'un k-ensemble fréquent à partir de 2 (k-
             1)-ensembles fréquents
         –   Calcul du support par comptage du nombre de bits 
             dans l'intersection des vecteurs associés de la bitmap
     v   2-BM
         –  La bitmap est indexée par une bitmap de niveau 
            supérieur
         – Les intersections s'effectuent au niveau de la 2-BM
         si 0 => pas nécessité d'accès à la 1-BM
         – Les bitmaps peuvent être compressées

23                             K. Zeitouni       Fouille de données
     Algorithme FP-Growth [Han00]

     v Représentation des items fréquents par un 
       index spécial FP-tree (Frequent Pattern Tree)
     v Construction du FP-tree
         –   Déterminer les items fréquents (1-ens.)
         –   Trier par fréquence décroissante (table)
         –   Créer une racine vide
         –   Pour chaque transaction :
              l   ajout des chemins de produits ordonnés par fréquence
              l   fusion des sous-chemins communs
              l   mise à jour des compteurs de fréquence des produits
         –   Générer les ensembles fréquents par combinaison 
             des nœuds des chemins fréquents
24                                 K. Zeitouni          Fouille de données
Construction du FP-Tree 
Exemple avec support = 2

1ère passe:     determiner la table Header

    Transaction Database                 Header table

                                             B   8
                                             A   7
                                             C   7
                                             D   5
                                             E   3




                                                     25
Construction du FP-Tree 

2ème passe:     Construction de FP-Tree
BD des transactions                                      null

                      Header table             B:1

                       B     8
                                     A:1
                       A     7
                       C     7        Conditional pattern base
                       D     5                 A     1
                                               C
                       E     3
                                      Sufixe
                                               D
                                               E
                                                     B    A     C   D
26                                                       préfixe
     Construction du FP-Tree 
                                                      null

                                               B:2
BD des transactions
                                     A:1        C:1
                      Header table

                       B     8                  D:1
                       A     7
                       C     7       Conditional pattern base
                       D     5             A    1
                                           C    1
                       E     3
                                           D    1            1
                                           E
                                                B     A      C   D
27
     Construction du FP-Tree 
                                                       null

                                                B:2                   A:1
BD des transactions
                                      A:1        C:1                   C:1
                      Header table

                       B     8                   D:1                   D:1
                       A     7
                       C     7       Conditional pattern base          E:1
                       D     5              A     1
                                            C     1    1
                       E     3
                                            D     1    1      2
                                            E          1      1   1
                                                  B    A      C   D
28
     Construction du FP-Tree 
                                                     null

                                           B:2                      A:2


BD des transactions                  A:1       C:1                   C:1   D:1

                      Header table
                                               D:1                   D:1   E:1
                       B     8
                       A     7                                       E:1
                       C     7       Conditional pattern base
                       D     5             A   1
                                           C   1      1
                       E     3
                                           D   1      2     2
                                           E          2     1   2
                                               B      A     C   D
29
     Construction du FP-Tree 
                                                      null

                                            B:3                      A:2

BD des transactions                   A:2       C:1                   C:1   D:1

                      Header table
                                                D:1                   D:1   E:1
                       B     8       C:1
                       A     7                                        E:1
                       C     7         Conditional pattern base
                       D     5              A   2
                                            C   2      2
                       E     3
                                            D   1      2     2
                                            E          2     1   2
                                                B      A     C   D
30
     Construction du FP-Tree 
                                                      null

                                            B:4                      A:2


BD des transactions                   A:3       C:1                   C:1   D:1

                      Header table
                                     C:2        D:1                   D:1   E:1
                       B     8
                       A     7       D:1                        E:1
                       C     7         Conditional pattern base
                       D     5              A   3
                                            C   3      3
                       E     3
                                            D   2      3     3
                                            E          2     1   2
                                                B      A     C   D
31
     Construction du FP-Tree 
                                                      null

                                            B:5                      A:2


BD des transactions                   A:3       C:2                   C:1   D:1

                      Header table
                                     C:2        D:1                   D:1   E:1
                       B     8
                       A     7       D:1                         E:1
                       C     7          Conditional pattern base
                       D     5              A   3
                                            C   4      3
                       E     3
                                            D   2      3     3
                                            E          2     1   2
                                                B      A     C   D
32
     Construction du FP-Tree 
                                                      null

                                            B:6                      A:2


BD des transactions                   A:4       C:2                   C:1   D:1

                      Header table
                                     C:3        D:1                   D:1   E:1
                       B     8
                       A     7       D:1                              E:1
                       C     7        Conditional pattern base
                       D     5              A   4
                                            C   5      4
                       E     3
                                            D   2      3     3
                                            E          2     1   2
                                                B      A     C   D
33
     Construction du FP-Tree 
                                            null

                                  B:7                      A:2


BD des transactions         A:5       C:2                   C:1   D:1


                      C:3   D:1       D:1                   D:1   E:1


                      D:1                                   E:1
                            Conditional pattern base
                                  A   5
                                  C   5      4
                                  D   3      4     3
                                  E          2     1   2
                                      B      A     C   D
34
     Construction du FP-Tree 
                                            null

                                  B:8                        A:2


BD des transactions         A:5       C:3                     C:1   D:1


                      C:3   D:1       D:1          E:1        D:1   E:1


                      D:1                                     E:1
                            Conditional pattern base
                                  A   5
                                  C   6      4
                                  D   3      4     3
                                  E   1      2     2     2
                                      B      A     C     D
35
       Construction du FP-Tree 



 Header table

   B     8
   A     7
   C     7
   D     5
   E     3
Des chaines de pointeurs pour chaque élément de «  Header Table» sont crées 
pour permettre un accès plus rapide.



                                                                36
      Construction du FP-Growth

       null
                           Suffix E
                                 (New) Header table
B:8                 A:2
                                      A       2       A   5

                                      C       2       C   6    4
 C:3                 C:1   D:1                        D   3    4   3
                                      D       2
                                                      E   1    2   2   2

              E:1    D:1   E:1                            B    A   C   D

                                      C
                     E:1              D
                                          A       C


        Idée : Si E est fréquent, (tout préfixe)+E sera fréquent
       => On constitue l’arbre des préfixes (conditional FP-tree)
                                                              37
      Construction du FP-Growth

       null
                    Suffix E (insérer BCE)
B:8                  A:2          (New) Header table

                                       A       2       FP-Tree conditionnel 
 C:3                  C:1   D:1        C       2
                                                                  null
                                       D       2
              E:1     D:1   E:1                             C:1

                      E:1              C
                                       D
                                           A       C

                                                                         38
      Construction du FP-Growth

       null
                Suffix E (insérer ACDE)
B:8                 A:2          (New) Header table

                                      A       2       FP-Tree conditionnel 
 C:3                 C:1   D:1        C       2
                                                                null
                                      D       2
              E:1    D:1   E:1                           C:1      A:1
                                      C   1
                     E:1
                                      D   1       1               C:1
                                          A       C
                                                                  D:1    39



39
      Construction du FP-Growth

       null
                    Suffix E (insérer ADE)
B:8                  A:2          (New) Header table

                                       A       2       FP-Tree conditionnel 
 C:3                  C:1   D:1        C       2
                                                                 null
                                       D       2
              E:1     D:1   E:1                           C:1      A:2
                                       C   1

                      E:1              D   2       1
                                                                    C:1
                                                                   C:1     D:1
                                           A       C


                                                                    D:1
                                                                   D:1    40



40
   RÉSULTATS (1)




D1: T25.I10D10K (taille moy trans:25, taille max itemsets:10, Nb transaction: 10K)
D2: T25.I20D100K (taille moy trans:25, taille max itemsets:20, Nb transaction: 100K)


                                                                                       41
RÉSULTATS (2)




                42
     Bilan FP-Growth

     v 2 lectures de la BD
     v Le FP-tree peut être volumineux
     v Peut ne pas tenir en mémoire
     v Solution :
         à Sauvegarder le FP-Tree sur disque et l’indexer
         à possibilité de combiner avec Apriori partition …




43                           K. Zeitouni       Fouille de données
     Problèmes des règles d’association
     v   Pb 1: Comment éliminer les règles redondantes ?

     v   Pb 2: Comment fixer support et confiance ? sont-ils 
         suffisants pour mesurer la pertinence de la 
         connaissance extraite ?

     v   Pb 3: Comment intégrer les taxonomies 
         (généralisation) ?

     v   Autres problèmes : intégrer les valeurs continues, 
         l’ordre temporel (séquentiel) des transactions, données 
         complexes…
44                            K. Zeitouni       Fouille de données
     Problème 1 : la redondence
     Propriété des k-ensembles fréquents 

     v   Constituent un semi-                        0,3%
         treillis                                   ABC

     v   Propriété d’anti-               0,5% 0,7%             0,4%        0,6%
         monotonie :                          AB   AC    BC     BD
         sup(X) >= sup(XY)

                                        1%          2%                2%          1%
                                              A         B         C        D


                                                            Æ
45                              K. Zeitouni                 Fouille de données
     La redondance [AY98]
     v   R1 : A=> BC 
     v   R2 : AB=> C 
     v   R2 est redondante / R1:
         –   même support (ABC)                             A
         –   conf (R2) =sup(ABC)/sup(AB)       AB
         –   conf(R1) =sup(ABC)/sup(A)
         –   donc conf(R2) > conf(R1)


     v   Plus généralement, pour un k          Sup(AB) < Sup(A)
         -ensemble fréquent, il suffit 
         d'extérioriser la règle valide 
         de condition minimale (ici R1)

46                               K. Zeitouni        Fouille de données
     La redondance stricte [AY98]

     v   R1 : A=> BCD
                                                   sup(A) > sup(AB)
     v   R2 : AB => C
     v   R2 est redondante / R1 :
          –   conf(R1) = sup(ABCD)/sup(A)
                                                     ABC      ABCD
          –   conf(R2) = sup(ABC)/sup(AB)
          –   sup(A) > sup(AB)
          –   sup(ABCD) < sup(ABC)
          –   donc conf(R1) < conf(R2)
     v   Plus généralement, il suffit de 
         considérer le plus grand k-               Sup(ABCD) < Sup(ABC)
         ensemble fréquent et 
         d'extérioriser la règle valide de 
         condition maximale
47                                   K. Zeitouni           Fouille de données
     Génération des règles revue

     v   Il suffit de retrouver les plus grands ensembles de support > 
         MinSup
     v   puis d'en extraire les règles de confiance > MinConf ayant une 
         condition maximale
     v   S'il n'y en a pas on descend le semi-treillis des ensembles 
         fréquents  et on itère.
     v   Possibilité de s'intéresser à un item particulier et d'explorer ses 
         ancêtres sur demande :
          –   ex : A=>{AB,AC}=>{ABC}




48                                  K. Zeitouni            Fouille de données
     Problème 2 : 
     Les mesures en question

     v   Problème avec support et confiance
         –   Le support est symétrique : A Þ  B ou B Þ  A ?
         –   Whisky Þ Viande a une confiance élevée
              l   confiance(X Þ Y) = P(Y/X) = P(XY)/P(X). 
              l   ignore P(Y) 
              l   élevée si P(X) est faible et P(Y) fort


     v   Sinon, comment trouver les règles ?
         –   Les ensembles fréquents sont insuffisants ...



49                                 K. Zeitouni          Fouille de données
     Mesure de conviction

     v   La conviction [Brin97] mieux adaptée ?
         –   conviction(XÞY) = P(X) P(¬Y)/P(X, ¬Y)
         –   mesure unique asymétrique
         –   XÞY s’écrit ¬(X et ¬Y) d ’où la conviction
     v   L’intérêt mesure la dépendance entre X et Y et 
         privilégie les articles rares
         –   Intérêt (XÞY) = P(X,Y)/ P(X) P(Y)
         –   mesure symétrique
     v   Étonnement ou surprise :
         –   Surprise (XÞY) = (P(X,Y) – P(X, ¬Y)) / P(Y)
         –   mesure l’affirmation: différence entre la confirmation P(X, Y) et 
             l’infirmation P(X, ¬Y)

50                                  K. Zeitouni            Fouille de données
     Mesure de conviction




51                 K. Zeitouni   Fouille de données
     Problème 3 : 
     Des règles plus générales
     v   Les règles multi-attributs :
         –   associent des valeurs d'attributs distincts
         –   telephone : Source = "New-York" => Cible ="Paris" 
             (5%,30%)
     v   Les règles à attributs numériques :
         –   règles de la forme   A Î [x,y] => C ou A est un 
             attribut numérique et C une condition : il faut trouver 
             x et y.
         –   exemple Age Î [x,y] => Salaire > 30 K€ (5%,30%) 
         –   trouver x? y?

52                              K. Zeitouni        Fouille de données
     Règles disjonctives et négatives

     v   Disjonctive
         –   Achat(X, "crème") | Achat(X, "fromage") è 
             Achat("pain")
     v   Négative
         –   NOT Achat(X, "pain") è Achat(X, "biscotte")
     v   Expressions logiques
         –   &, | , NOT (avec parenthèses pour priorité) en 
             condition
         –   possible aussi en tête de règles …


53                             K. Zeitouni       Fouille de données
     Règles multi-niveaux

     v   Difficultés de trouver des associations robustes
         –   significatives au niveau des données élémentaires
         –   intérêt de pouvoir grouper les données élémentaires 
             en classes plus ou moins générales
     v   Impacts sur les algorithmes
         –   trouver les règles à plusieurs niveaux
         –   supports de règles générales plus élevés



54                             K. Zeitouni       Fouille de données
     Règles multi-niveaux - Généralisation
     v   La généralisation permet de résumer les 
         données
         –   introduit une hiérarchie de classe, du général au 
             détaillé
         –   remplace les valeurs (trop) détaillées par des moins 
             détaillées jusqu'au niveau souhaité
         –   Augmente les comptages, ce qui permet d'induire 
             des règles (indétectable sans généralisation)
              l   exemple : plus de légumes que de carottes
     v   Basée sur l’induction orientée attribut [Lu & Han 
         93]
          – utilise des hiérarchies de concepts

55                                 K. Zeitouni          Fouille de données
     Hiérarchie de concepts

     v Arbre de généralisation / spécialisation de 
       concepts
     v Objectifs :
         –   décrit le passage des concepts les plus spécifiques 
             – correspondant aux valeurs de l’attribut dans la 
             base de données – aux concepts plus généraux
     v   Résultats :
         –   Table généralisée ou règles (plus ou moins 
             caractéristiques, discriminantes ...) sur les données 


56                              K. Zeitouni        Fouille de données
      Exemple de hiérarchies

                                      Agricultur
                                      e

                   Fruits                Légumes               …


       Bananes Oranges …          P. de terre Carottes             …

                                                    Monde
                  ANY


                                    Europe           Afrique       Asie       …
        Semaine     Week-end


 Lu    Ma   ...     Sa      Di   E. est E. ouest                          …
                                                   A. du  A. du 
                                                   nord   sud
57                               K. Zeitouni             Fouille de données
     Algorithme optimisé (1)

     v   Utilisation du même support à tous les niveaux
         –   exemple: 7% pour Agriculture, Légume et Carotte
         –   inutile d'examiner un k-ensemble dont une classe 
             supérieure ne satisfait pas le support
         –   exemple: ne pas miner Carotte si Légume ne 
             satisfait pas le support




58                             K. Zeitouni       Fouille de données
     Algorithme optimisé (2)

     v   Utilisation d'un support plus fins dans les sous-
         classes
         –   exemple: 7% pour Agriculture, 3% Légume et 1% 
             Carotte
         –   plus réaliste car classes de plus en plus fines
         –   plusieurs stratégies de recherche possibles
              l   ne pas miner une sous-classe d'une classe non fréquente 
                  => pertes possibles
              l   évaluer par niveau de manière indépendante => 
                  algorithme coûteux
              l   évaluer en profondeur avec des seuils …



59                                 K. Zeitouni           Fouille de données
     Bilan Règles d’association

     v De nombreuses techniques de recherche de 
       règles
     v Un bon outil doit proposer plusieurs techniques
     v Les problèmes : 
         –   comment explorer de volumineuses bases de 
             données ?
         –   trouver des structures d'indexation intéressantes ?
         –   maintenance incrémental des règles ?
         –   exploration de types de données complexes ?



60                             K. Zeitouni        Fouille de données
II.2. Classification


         Arbres de décision
         kNN
         Méthodes bayésiennes
     Apprentissage supervisé et non supervisé

     v   Apprentissage supervisé (classification)
         –   Les données d’apprentissage (observations) ont des classes 
             (labels ou étiquettes) connues d’avance.
         Ø   Phase 1 : construction du modèle selon la base d’apprentissage
         Ø   Phase 2 : classement de nouvelles données.


     v   Apprentissage non supervisé (clustering)
         –   Aucune classe n’est connue au départ.
         –   Le but est de mettre en évidence des classes ou clusters à partir 
             des similarités et dissimilarité entre les données.


62                                  K. Zeitouni           Fouille de données
     Illustration : Modèle prédictif

                              Données préclassées                             Modèle prédictif   Données à classer
       Phase d’entrainement




                                                        Phase de classement
                                     Logiciel                                              Logiciel
                                      de FD                                                 de FD



                                 Modèle prédictif                                        Classes prédites



63                                                  K. Zeitouni                              Fouille de données
     Exemple – Base d’apprentissage




64               K. Zeitouni   Fouille de données
     CLASSIFICATION PAR 
     ARBRES DE DÉCISION

65              K. Zeitouni   Fouille de données
     Classement par arbre de décision

     v   Arbre de classes :
         –   Division en sous-classes correspond à un test sur une variable
         –   Règles dont la prémisse exprime une condition sur des variables 
             (dites explicatives) et la conclusion est la variable à expliquer 
             (classe label)
              l   Ex : Si age < 30 ans et Etudiant = oui alors achete_PC = 
                  oui
     v   Avantage :
         –   Modèle lisible et compréhensible par l’utilisateur !



66                                   K. Zeitouni             Fouille de données
     Classification

                           age?


               <=30       overcast
                           30..40               >40

           Etudiant ?       oui                 Taux-crédit?


     non            oui                     excellent   faible

     non            oui                         non       oui

67                                K. Zeitouni             Fouille de données
     Procédure de construction

     v   Principe :
         –   Partitionner les données (nœud de l’arbre) de telle sorte que 
             les parties soient plus homogènes que le nœud parent et 
             qu’elles soient le plus différent possible entre elles vis à vis de 
             la variable classe
     v   Partition(données P)
         –   si (P homogène ou satisfait le critère d’arrêt) alors retour;
         –   pour chaque attribut A faire
              l   évaluer la qualité du partitionnement  sur A;
         –   utiliser le meilleur partitionnement pour diviser P en P1, P2, 
             …Pn
         –   pour i = 1 à n faire Partition(Pi)
     v    Problème : comment mesurer la bonne partition ?

68                                     K. Zeitouni                Fouille de données
     Qualité d’un partitionnement

     v   Différentes mesures introduites selon les 
         variantes d’arbres de décision
         –   il s'agit d'ordonner le désordre
         –   des indicateurs basés sur la théorie de l'information
     v   Choix des meilleurs attributs ou valeurs
         –   les meilleurs tests
     v   Possibilité de retour arrière
         –   élaguer les arbres résultants (classes inutiles)
         –   revoir certains partitionnements (zoom, réduire)


69                                 K. Zeitouni    Fouille de données
     Solutions - Variantes d’arbres de 
     décision




70                 K. Zeitouni   Fouille de données
      Algorithme de segmentation (1/3)
     À Au début, on dispose d ’un seul segment contenant l’ensemble des 
       individus.
     Á A la première étape, pour chaque variable explicative xi :
         l   passer en revue toutes les divisions possibles selon chaque valeur possible 
             a de xi
               –   chaque division scinde le noeud en 2 segments: le segment de gauche sg  
                   contient les objets vérifiant ( xj < a ) et le segment de droite sd les autres (xj³ a) 
         l   de toutes les divisions djm possibles de xj, où m représente la mième division, 
             sélectionner la «  meilleure » dj*, au sens du critère de division (variance ou 
             pureté) 
         l   de tous les dj*, choisir la meilleure division globale: d*


71                                             K. Zeitouni                  Fouille de données
      Algorithme de segmentation (2/3)

                        x1   xj                 xp



                                                     d* : meilleure 
     djm: mième                                      division 
     division pour                                   globale
     xj

     dj* : meilleure 
     division pour 
     xj




72                                K. Zeitouni          Fouille de données
     Algorithme de segmentation (3/3)

  Appliquer la même procédure à chacun des deux segments descendants 
     obtenus
 Ã   Arrêt lorsque tous les segments sont déclarés saturés:
      l   c’est à dire qu’aucune variable ne génère localement une meilleure 
          sous-partition
      l   soit ils ne nécessitent plus de division soit leur taille < à l’effectif 
          donné en paramètre.




73                                     K. Zeitouni             Fouille de données
     Exemple de segmentation

     v   Soit 300 individus classés en 3 classes c1,c2, c3
         –   Au départ, il y a 100 individus par classe
         –   On peut estimer un taux d ’erreur apparent de classement, ici 
             = 26,3 %
                                 100, 100, 100
                       x8 < 3,5                           x8 >= 3,5

                     75, 65, 20                             25, 35, 80
         x2 = 1                   x2 = 0         x3 < 6                   x3 >= 6

       7, 63, 4          68, 2, 16            10, 15, 70               15, 20, 10
     affecté à c2       affecté à c1         affecté à c3             affecté à c2
         Segment 1        Segment 2             Segment 3                Segment 4

74                                     K. Zeitouni                Fouille de données
     Régression et discrimination
 –   Cas de la régression
     y est continue, la sélection de la « meilleure » division d’un nœud 
     utilise la variance de y dans les segments descendants. Elle doit être  
     < la variance de y dans le nœud parent.

 –   Cas de la discrimination: 
     y est nominale et répartit les individus en k classes, la sélection d ’une 
     division doit être telle que les segments descendants soient plus 
     « purs » que le nœud parent.




75                                  K. Zeitouni            Fouille de données
     Cas de la discrimination
     v   Indice d’impureté (de Gini) d'un segment s : 
          –   I(s) =  åi åj { pi * pj } avec i¹j             -- I(s)=0 pour un nœud pur.
          –   pi = fréquence relative de la classe i dans le segment s (% 
              d ’éléments de la classe i dans s) 
     v   L’écart de pureté pour une division du nœud s par la 
         variable xj (en binaire : sg et sd) s’exprime par :
               l   Djm = I(s) - åj nj*I(sj) 
               l   nj est la proportion d'individus du nœud s dans le fils sj
     v   Sur l ’ensemble des p variables (ou critères), la division du nœud 
         « s » est effectuée à l ’aide de la variable qui assure l’écart de 
         pureté maximal
                           D* = maxj=1…p {maxm Î  dj {Djm} }

76                                             K. Zeitouni            Fouille de données
     ID3, C4.5 et CART (1/2)

     v   Mesure du pouvoir discriminant:
          – ID3: le pouvoir discriminatoire (ou gain informationnel) d ’une 
            variable <= une variation d ’« entropie de Shannon » lors du 
            passage de St à St+1
          – C4.5 : introduit un facteur «Gain ratio » visant à pénaliser la 
            prolifération des sommets. Ce ratio est le rapport entre le gain 
            d’information et la distribution des individus sur la partition S.
          – CART : si problème à 2 classes
              l cherche la bi-partition minimisant l ’indice d’impureté de Gini
          – CART : si problème à N classes
              l maximisant le gain d’information donné par l’indice de 
                Towing


77                                  K. Zeitouni           Fouille de données
     ID3, C4.5 et CART (2/2)

     v   Critères d ’arrêt:
          – Seuil de gain informationnel
          – Seuil d ’effectif dans un noeud
          – Test statistique dit d ’indépendance  c 2  dans ID3




78                                  K. Zeitouni           Fouille de données
     ID3 - Entropie de Shanon

     v   Minimisation du désordre restant
         –   pi = fréquence relative de la classe i dans le 
             segment s
     v   Mesure d ’entropie d'un segment s
         –   E(s) = -å pi Log2(pi)
     v   Minimiser son évolution globale [Quinlan 86]
         –   DN = E(s) - åj  nj * E(sj)




79                               K. Zeitouni       Fouille de données
     Autres problèmes
     v   Problème des attributs continus
         –   Certains attributs sont continus (ex: salaire)
         –   Parcourir toutes les valeurs (autant que de données)
               l   Inefficace
         –   Discrétiser en le découpant en sous-ensembles ordonnés
               l   Intervalle réguliers ou bien quantiles (les 1er 1/100, puis les 2°…)
               l   Génère des intervalles [a0,a1[, [a1,a2[, …., [an-1,an]
         –   investiguer différents cas et retenir le meilleur
               l   exemple : 2, 4, 8, etc. par découpage d’intervalles en 2 successivement
         –   minimiser la variance, une mesure de dispersion …

     v   Problème des données manquantes
         –   Les remplacer par des valeurs estimées ou probables

     v   Regroupement d’attributs
         –   Si le regroupement est plus représentatif que les attributs seuls (éparses)


80                                              K. Zeitouni                    Fouille de données
     Problème du sur-apprentissage
     v   Overfitting ou  sur-apprentissage
         –   Trop de branches reflètent généralement des anomalies dues au 
             bruit et aux données atypiques
         –   Entraînent une mauvaise prédiction et un manque de 
             généralisation des règles
         –   De plus, les arbres trop touffus sont inutiles et peu lisibles
     v   2 approches pour éviter le sur-apprentissage 
         –   Elagage en amont: Inclure dans le critère d’arrêt un seuil de gain 
             d’information (mais comment fixer ce seuil ?)
         –   Post-élagage: supprimer des branches d’un arbre déjà construit —
             évaluer progressivement les arbres élagués
               l En utilisant un autre échantillon de données que celui de 
                 l’apprentissage pour décider du meilleur élagage

81                                   K. Zeitouni          Fouille de données
     Optimisation qualitative de l’arbre

     v   Séparer les données en base d’apprentissage (ex. 2/3) et 
         de test (1/3)
     v   Utiliser la validation croisée
     v   Construire l’arbre sur la base d’apprentissage
         –   Tout en appliquant des tests statistiques (ex. Chi2) pour estimer 
             si le découpage améliore globalement la distribution dans les 
             classes
     v   Utiliser le principe MDL (minimum description length) 
         pour stopper le découpage
         –   Pénalise la complexité du critère (du modèle en général)

82                                   K. Zeitouni           Fouille de données
     Optimisation algorithmique –
     Méthodes passant à l'échelle

     v La plupart des algorithmes de base supposent 
       que les données tiennent en mémoire
     v La recherche en bases de données a proposé 
       des méthodes permettant de traiter de grandes 
       BD  
     v Principales méthodes:
         –   SLIQ  (EDBT’96 -- Mehta et al.’96)
         –   SPRINT (VLDB96 -- J. Shafer et al.’96)
         –   RainForest  (VLDB98 -- J. Hekankho et al.’98)
         –   PUBLIC (VLDB’98 -- R. Rastogi et al.’98)
83                             K. Zeitouni      Fouille de données
     Méthode SLIQ

     v   SLIQ (EDBT’96 -- Mehta et al.’96)
         –   Supervised Learning In Quest
     v   Classificateurs CART et C4.5 :
         –   Développe l'arbre en profondeur d'abord
         –   Trie les données de manière répétée à chaque nœud
     v   SLIQ:
         –   Remplace le tri répété par 1 seul tri par attribut
         –   Utilise une nouvelle structure de données (class-list)
         –   S'applique sur des attributs numériques ou nominaux
     v   Indicateur: minimiser ginisplit(T) = åi [ni/n] gini(Ti)

84                              K. Zeitouni         Fouille de données
     Méthode SPRINT

     v   SPRINT (VLDB96 -- J. Shafer et al.’96)
         –   Scalable PaRallelizable INdution of decision Tree
     v SLIQ nécessite de garder la class-list en 
       mémoire 
     v SPRINT
         –   Ne nécessite pas de structure résidente en 
             mémoire
         –   Version parallèle passant à l'échelle




85                             K. Zeitouni       Fouille de données
SPRINT- Structure  de données


v Sprint crée une 
  attribute-list pour 
  chaque attribut
v Une entrée contient:
    –   Valeur d'attribut
    –   Etiquette de classe
    –   Identifiant d'article 
        (rid)


                                 86
     Evolution des listes

     v Les listes initiales 
       sont associées à la 
       racine de l'arbre
     v Au fur et à mesure 
       du développement 
       de l'arbre, les listes 
       d'attributs de chaque 
       nœud sont 
       partitionnées et 
       associées aux fils


87                        K. Zeitouni   Fouille de données
     Data Structure (Histograms)




     v   Pour les attributs continus (ex. Age):
         –   deux histogrammes sont associés à chaque nœud : 
              l   Cbelow: maintient la distribution pour les articles déjà traités
              l   Cabove: maintient la distribution pour les articles non traités 
88                                   K. Zeitouni            Fouille de données
     Data Structure (Histograms)




     v   Pour les attributs nominaux, un seul histogramme
         –   matrice de comptage [Valeur d'attribut, Classe]

89                             K. Zeitouni        Fouille de données
     Choix des divisions

     v Pendant la construction de l'arbre, l'objectif à 
       chaque nœud est de déterminer le découpage 
       qui divise au mieux l'ensemble de données de 
       la feuille considérée
     v L'indice Gini est utilisé:
         –   Gini(S)=1-Spj2
         –   où pj est la fréquence de la classe j dans S
     v   Ginisplit(S) = n1/n Gini(S1)+n2/n Gini(S2)



90                              K. Zeitouni       Fouille de données
     Exemple Continu (1)

     Age       Class        Tid
      17       High         1
      20       High         5
      23       High         0
      32        Low         4
      43       High         2
      68        Low         3


                        H         L
 Cursor
 Position 3:   Cabove   3         0
               Cbelow   1         2

91                              K. Zeitouni   Fouille de données
     Exemple Continu (2)

                             v Après calcul de tous 
                               les indices Gini, le 
                               plus petit est retenu
                             v Donc, on divise à la 
                               position 3 où l'age 
                               est le point médian 
                               entre 23 et 32 (i.e. 
                               Age < 27.5)



92                 K. Zeitouni         Fouille de données
     Exemple Nominal


              H   L

     Family   2   1

     Sports   2   0

     Truck    0   1


93                    K. Zeitouni   Fouille de données
     Exécution du partitionnement

     v Une fois le meilleur point de division trouvé, on 
       exécute la découpe en éclatant le nœud par 
       création des nœuds enfants qui se partagent 
       les enregistrements selon le prédicat
     v Pour les autres listes d'attributs, (i.e. CarType), 
       il faut retrouver les informations par jointure sur 
       rid.




94                         K. Zeitouni      Fouille de données
     Comparaison avec SLIQ
     v   SLIQ ne divise pas les listes 
         d'attributs lors du split
          –   Repère le nœud par un 
              pointeur dans la class-list
     v   Avantages 
          –   Pas de recopie des listes 
              d'attributs lors du split
          –   Ré-allocation d'articles par 
              déplacement de pointeur
     v   Désavantage
          –   La liste des références (class
              -list) de taille le nombre          v   SPRINT peut être 
              d'articles doit tenir en                facilement parallélisé 
              mémoire                                 –   pas de structures 
                                                          partagées en mémoire
95                                      K. Zeitouni              Fouille de données
     Bilan

     v De nombreux algorithmes de construction 
       d'arbre de décision
     v SPRINT passe à l'échelle et traite des attributs 
       nominaux ou continus
     v Autres algorithmes proposés
         –   Encore plus rapides 




96                             K. Zeitouni   Fouille de données
     CLASSIFICATION PAR LES K 
     PLUS PROCHES VOISINS

97              K. Zeitouni   Fouille de données
     La méthode des KPPV 

     v   Classification basée sur les k plus proches voisins 
         (KPPV ou K-NN)
     v   Principe : apprentissage par analogie
     v   Collection de tuples d'apprentissage
         –   Xi=(x1i,x2i,…xni) (xji numérique) de classe connue
         –   Représente un point dans l'espace à n dimensions
     v   Classes prédéfinies
         –   C={C1,C2, …Cm}
     v   Distance et Similarité
         –   Distance Euclidienne, Cosinus, etc.
         –   Similarité = Max - Distance

98                                 K. Zeitouni          Fouille de données
     KPPV – Phase de classement

     v Soumission d'un tuple inconnu
     v Recherche des k plus proches voisins
     v Assignation de la classe la plus représentative 
       parmi les k voisins 
         –   Vote majoritaire (classe la plus fréquente)
         –   Plus grande similarité à la classe 
         –   …




99                              K. Zeitouni       Fouille de données
      Algorithme KPPV (ou kNN)

      Class (X) {
      // corpus d’apprentissage T = {X1, X2, … Xn}
      // classes prédéfinies C ={C1,C2, …Cm}
      // Compute similarities
          For i=1..N
                      similar[i] = Max - distance(X,Xi);
          SortDescending(similar[]); 
          kNN=Select k nearest neighbors with highest similarity;
          // Calculer les scores des classes
          score[Cj] = f(Cj, kNN) ;
          Class(X) = Class Cj with highest score;
      }
100                           K. Zeitouni        Fouille de données
      Forces et faiblesses

      v   Les attributs ont le même poids
          –   centrer et réduire pour éviter les biais
          –   certains peuvent être moins classants que d'autres
      v   Apprentissage paresseux
          –   rien n'est préparé avant le classement
          –   tous les calculs sont faits lors du classement
          –   nécessité de technique d'indexation pour large BD
      v   Calcul du score d'une classe
          –   peut changer les résultats; variantes possibles


101                             K. Zeitouni        Fouille de données
      CLASSIFICATION PAR 
      RÉSEAUX BAYÉSIENS

102              K. Zeitouni   Fouille de données
      Classificateurs Bayésiens

      v   Méthodes basées sur probabilités conditionnelles
          –   Prévision du futur à partir du passé
          –   Il existe 2 types de méthodes
      v   Classificateur bayésien naïf
          –   Suppose l'indépendance des attributs
      v   Réseau bayésien
          –   Graphe orienté sans cycle (DAG) avec des 
              probabilités sur les arcs, facilement lisible.
          –   Peut être donné par des experts ou appris
          –   But : inférence
103                              K. Zeitouni         Fouille de données
      Fondements

      v   Dérivé du théorème de Bayes
          –   permet de calculer une probabilité conditionnelle 
              P(Hi/X) d’un événement Hi sachant X à partir 
              d'une probabilité de production de l’événement Hi 
              observé pour X dans un historique. 


      v   Plus simplement :
          –   P(Hi/X) = P(X/Hi)*P(Hi)/P(X) = P(X, Hi)/P(X)




104                             K. Zeitouni       Fouille de données
      Bayésien Naïf

      v   Pour un tuple à classer tel que :
          –   X= (x1, x2, …xn) sur R(A1, A2, …An)
          –   Il s'agit de le classer parmi m classes C1, …Cm
      v   Assignation de la classe la plus probable
          –   Celle maximisant P(Ci/X) = P(X/Ci)*P(Ci)/P(X)
          –   P(X) est supposé constant (équi-probabilité des 
              tuples)
      v   On cherche la classe maximisant :
          –   P(X/Ci)*P(Ci) pour i= 1 à m


105                             K. Zeitouni       Fouille de données
      Calcul de P(X/Ci)

      v   P(Ci) est déduite de l'échantillon :
          –   Comptage training set = Taille(Ci)/ Taille(Ech)
      v   P(X/Ci) est approché comme suit :
          –   Indépendance des attributs è
          –   P(X/Ci) = Pk P(xk/Ci)
      v   P(xk/Ci) est estimé comme suit:
          –   variable nominale = Taille(xk, Ci)/Taille(Ci)
          –   distribution gaussienne si variable continue 



106                              K. Zeitouni       Fouille de données
      Exemple de problème
       


      v   Faut-il effectuer un contrôle fiscal ?
          –   Échantillon de contrôlés




          –   Faut-il contrôler un nouvel arrivant ?




107                              K. Zeitouni           Fouille de données
      Les classes nominales


               Sal<=30             Sal 31..50              Sal>50
                                                 2                      1
           2

                  impôts<20%                     impôts>=20%
                                                                    1
                             4

                                                       Non
                     Etudiant                        Etudiant   3
                                   2



                         Positif                     Négatif
                                       3                        2
108                                K. Zeitouni                  Fouille de données
      Calcul de Probabilités

      v   Il s'agit de choisir Ci maximisant P(Ci/X) :
          –   P(Positif/X) = P(X/Positif)P(Positif)/P(X)
          –   P(Négatif/X) = P(X/Négatif)P(Négatif)/P(X)
          –   P(X) est supposé constant
      v   Donc, choisir :
          max{P(X/Positif)P(Positif), P(X/Négatif)P(Négatif)}
          –   P(X/Positif) = Pk P(Xk/Positif) =P(sal31..50/Positif)* 
              P(impots<20%/Positif)*P(Etudiant/Positif) = 2/3*1*1/3=2/9; 
              P(Positif) = 3/5 è Produit = 0.13
          –   P(X/Négatif) = Pk P(Xk/Négatif) =P(sal31..50/Négatif)* 
              P(impots<20%/Négatif)*P(Etudiant/Négatif) = 1/2*1/2*1/2=1/8; 
              P(Négatif) = 2/5 è Produit = 0.05
      v   On effectuera donc un contrôle !

109                                 K. Zeitouni            Fouille de données
      Avantages/inconvénients

      v   Avantage :
          –   Méthode simple et largement utilisée
      v   Inconvénients :
          –   Pas de solution directe pour les descripteurs continus 
              (discrétisation ou hypothèse de distribution)
          –   Dès que le nombre de descripteurs augmente
              • Problème de calculabilité : Nombre d’opérations énorme, ex. 10 descr. 
              binaires => 2**10 règles
              • Problème de fragmentation des données

          à   Dans ce cas : L’approche est inutilisable !



110                                      K. Zeitouni                Fouille de données
      Réseau Bayésien (structuré)

      v Nœuds = Variables aléatoires
      v Structure
          –   Graphe direct acyclique de dépendance
          –   Xè Y signifie que X est un parent de Y 
          –   XèèY signifie que X est un descendant de Y
          –   Les variables non liées sont indépendantes
      v   Classes à déterminer
          –   Nœuds singuliers du réseau
      v   Probabilités connues
          –   à priori et conditionnelles (arcs)

111                               K. Zeitouni      Fouille de données
      Calculs

      v L'instanciation des variables non classes 
        permet de calculer la probabilité des classes
      v Application des calculs classiques de 
        probabilité et du théorème de bayes
      v Apprentissage à partir d'une base 
        d'échantillons
      v Peut être complexe si structure inconnue
          –   NP-complet



112                        K. Zeitouni    Fouille de données
      Exemple complet


               Sal<=30                Sal 31..50            Sal>50
                                                    2                   1
           2

                  impôts<20%                        impôts>=20%
                                                                    1
                              4


                                                          Non
                      Etudiant                          Etudiant
                                                               3
                                  2


                    Positif                              Négatif
                                      3                                 2

113                                   K. Zeitouni                  Fouille de données
      Structure a priori


                Sal<=30                Sal 31..50             Sal>50
            2                                        2                  1

                   impôts<20%                        impôts>=20%
                               4                                    1


                                                           Non
                       Etudiant                          Etudiant
                                   2                           3


                     Positif                              Négatif
                                       2                                3

114                                    K. Zeitouni                  Fouille de données
      Bilan

      v   Bayesien naïf
          – suppose l'indépendance des variables
          Ø Méthode simple et efficace en pratique. Utilisée
            couramment en Data Mining

      v   Réseaux Bayesiens
          – permettent certaines dépendances
          – si structure connue = calculs de proba.
          – si inconnue = difficile à inférer
          Ø Assez peu appliqué en Data Mining à cause de la
            complexité algorithmique

115                           K. Zeitouni        Fouille de données
      Bilan Classification

      v   De nombreuses techniques dérivées de l'IA et des 
          statistiques
      v   Autres techniques
          –   raisonnement par cas, ensembles flous, …

      v   Problème de passage à l’échelle
          –   arbre de décisions, réseaux 

      v   Tester plusieurs techniques pour résoudre un 
          problème



116                                K. Zeitouni           Fouille de données

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:4/8/2014
language:Unknown
pages:116