Professional Documents
Culture Documents
guillaume.calas@gmail.com
Mots cls: data mining, arbres de dcision, clustering, rgles associatives, sequence mining, classification.
Introduction
1.1 Apprentissage supervis . . . .
1.1.1 Les arbres de dcision .
1.1.2 Les rseaux de neurones
1.2 Apprentissage non supervis . .
1.2.1 Clustering . . . . . . . .
1.2.2 Les rgles associatives .
1.2.3 Sequence mining . . . .
1.3 Apprentissage incrmental . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
1
2
2
2
2
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
3
3
4
4
5
5
5
5
6
6
7
7
7
8
8
8
9
Algorithmes
10
Rfrences
19
Introduction
prdictions partir des donnes connues sur le problme par rduction, niveau par niveau, du domaine
des solutions.
Chaque nud interne dun arbre de dcision porte
sur un attribut discriminant des lments classifier
qui permet de rpartir ces lments de faon homogne
entre les diffrents fils de ce nud. Les branches liant
un nud ses fils reprsentent les valeurs discriminantes de lattribut du nud. Et enfin, les feuilles dun
arbre de dcision sont ses prdictions concernant les
donnes classifier.
1.1
Apprentissage supervis
Un rseau de neurones est un modle de calcul dont le fonctionnement schmatique est inspir
du fonctionnement des neurones biologique. Chaque
neurone fait une somme pondre de ses entres (ou
synapses) et retourne une valeur en fonction de sa
fonction dactivation2 . Cette valeur peut tre utilise
soit comme une des entres dune nouvelle couche
de neurones, soit comme un rsultat quil appartient
lutilisateur dinterprter (classe, rsultat dun calcul,
etc.).
1.1.1
1.2
les profits en favorisant, par exemple, les ventes complmentaires. Ces algorithmes permettent de rsoudre
des problmes dits de Frequent Set Counting (FSC).
1.2.3
Sequence mining
Le rsultat des algorithmes de data mining non considres comme des squences ordonnes de mots.
supervis doit tre analys afin dtre retenu pour un
usage ou tout simplement rejet.
1.3 Apprentissage incrmental
1.2.1
Clustering
Le clustering est une mthode statistique danalyse de donnes qui a pour but de regrouper un ensemble de donnes en diffrents groupes homognes.
Chaque sous-ensemble regroupe des lments ayant
des caractristiques communes qui correspondent
des critres de proximit.
Le but des algorithmes de clustering est donc de
minimiser la distance intra-classe (grappes dlments
homognes) et de maximiser la distance inter-classe
afin dobtenir des sous-ensembles le plus distincts
possible.
La mesure des distances est un lment prpondrant pour la qualit de lalgorithme de clustering.
Lapprentissage incrmental permet une machine dapprendre par ajout successif dinformations.
Pour tre considr comme tel, un systme dapprentissage doit :
tre capable dapprentre de nouvelles informations partir de nouvelles donnes ;
tre capable de se passer des donnes dorigine
pour entraner le nouveau classifieur ;
prserver le savoir prcdemment acquis ;
tre capable de reconnatre de nouvelles classes
indroduites dans les nouvelles donnes.
2
2.1
Pour chaque nud de dcision, CART fait une honorables, il est sujet au sur-apprentissage. Le postrecherche exhaustive sur tous les attributs et valeurs lagage de larbre de dcision gnr est donc fortede sparation disponibles et slectionne la sparation s ment conseille.
qui maximise le critre suivant au nud t :
2.1.2
Card(Classes)
(s|t) = 2PL PR
j=1
o
S = ensemble dentranement
tL = fils gauche du nud t
tR = fils droit du nud t
Card(tL )
PL =
Card(S)
Card(tR )
PR =
Card(S)
Card(classe j tL )
P( j|tL ) =
Card(t)
Card(classe j tR )
P( j|tR ) =
Card(t)
ID3
(
E(Sv ))
(3)
et des donnes continues. Il permet galement de le Gain (3), Gini Index (7), et Twoing Rule (6) obtravailler avec des valeurs dattribut absentes.
tiennent les meilleures performances.
Enfin, C4.5 lague larbre construit afin de supprimer les rgles inutiles et de rendre larbre plus compact. Lalgorithme C5, qui est une solution commerciale, est une amlioration supplmentaire de C4.5.
2.1.4
OC1
Rfrence : [8]
Date de publication : 1993
Auteurs : Murphy, Kasif, Salzberg, Beigel
Incrmental : non
Algorithme : figures 5 et 6 page 12
Description : OC1 (Oblique Classifier 1) est une extension de CART-LC (CART avec des Combinaisons
Linaires). Mais contrairement CART, dune part,
OC1 utilise le hasard pour trouver le meilleur hyperplan de sparation de lensemble dentranement, et
dautre part, lhyperplan de sparation peut ne pas
tre parallle aux axes. De ce fait, lalgorithme peut
gnrer une multitude darbres de dcision ce qui
peut permettre de raliser un k-decision-tree classifieur
dont le rsultat de la classification rsulte de la majorit des votes des k arbres de dcision.
TValue =
|TL |
|TR |
n
n
!2
Li
R
i
|TL | |TR |
k
i=1
(6)
Enfin, en ce qui concerne llagage de larbre de
dcision obtenu, nimporte quel algorithme prvu cet
effet est utilisable et obtient de bons rsultats.
2.1.5
SLIQ
Rfrence : [1]
Date de publication : 1996
Auteurs : Metha, Agrawal, Rissanen
Incrmental : oui, par extension
Algorithme : figures 2,3 et 4 page 10
Description : SLIQ (Supervised Learning In Quest)
est un algorithme performant capable de traiter des attributs numriques et catgoriques. Lalgorithme construit
un arbre binaire de dcision de faon rcursive en utilisant le coefficient de Gini (7) comme critre pour la
slection du meilleur attribut et de la valeur associe.
(4)
gini(S,t)split =
|ST |
|SF |
gini(ST ) +
gini(SF )
|S|
|S|
(8)
(
et
Dt (i)
Dt+1 (i) =
Zt
e t
si
si
ht (xi ) = yi
ht 6= yi
(9)
2.1.6
SPRINT
Rfrence : [14]
Date de publication : 1996
Auteurs : Shafer, Mehta, Agrawal
Incrmental : non
Description : SPRINT est un algorithme bas que
SLIQ qui a t conu afin de remdier au principal
problme de SLIQ : son utilisation excessive de la
mmoire. Il peut galement tre facilement srialis
afin daugmenter ses performances.
2.2.2
Learn++
Rfrence : [10]
Date de publication : 2001
Auteurs : Polikar, Udpa, S. Udpa, Honovar
Incrmental : oui
La diffrence entre les deux algorithmes rside Algorithme : figure 8 page 14
dans le fait que SPRINT ne conserve en mmoire Description : Learn++ sinspire de lalgorithme Adaque la partie utilise des listes tries alors que SLIQ Boost. Il gnre un certain nombre de classifieurs
conserve la liste entire en mmoire.
faibles partir dun ensemble de donnes dont on
connat le label. En fonction des erreurs du classifieur faible gnr, lalgorithme modifie la distribution
2.2 Les rseaux de neurones
des lments dans le sous-ensemble suivant afin de
renforcer la prsence des lments les plus difficile
2.2.1 AdaBoost
classifier. Cette procdure est ensuite rpte avec
Rfrence : [6]
un ensemble diffrent de donnes du mme dataset et
Date de publication : 1997
des nouveaux classifieurs sont gnrs. En combinant
Auteurs : Freund, Schapire
leurs sorties selon le schma de majorit de votes de
Incrmental : oui
Littlestone on obtient la rgle finale de classification.
Algorithme : figure 7 page 13
Description : AdaBoost est un mta-algorithme qui
Les classifieurs faibles sont des classifieurs qui
permet de booster les performances dun classifieur fournissent une estimation grossire de lordre de
base de rseau de neurones. Lalgorithme regroupe 50% ou plus de bonne classification dune rgle
des hypothses faibles mises par un classiffieur faible de dcision car ils doivent tre trs rapide gnrer.
entrans sur un sous-ensemble dentranement dont la Un classifieur fort passant la majorit de son temps
distribution des lments est renforce, itration aprs dentranement affiner ses critres de dcision. La
itration, afin que lapprentissage puisse tre concentr recherche dun classifieur faible nest pas un problme
sur les exemples qui posent le plus de difficults au trivial et la complexit de la tche crot avec le nombre
classifieur ainsi entran.
de classes diffrentes, cependant, lutilisation dalgorithmes NN correctement rgls permet efficacement
La distribution est modifie selon lquation sui- de contourner le problme.
errort =
Support(A B)
Support(A)
(13)
les candidats dont au moins une des sous-chane k-1 Algorithme : figures 10 et 11 page 15
lments nest pas prsente dans lensemble des rgles Description : Eclat est le fondateur de la seconde
grande famille dalgorithmes de recherche de rgles
k-1 lments.
dassociations avec lalgorithme Apriori. Lalgorithme
Cet algorithme est trs performant, mais souffre si dmarre avec la liste des lments frquents puis
les ensembles dlments frquents sont trop grands. lalgorithme est ritr en rajoutant les ensembles
De plus, scanner la base donnes la recherche dun frquents lensemble des candidats C jusqu ce que
motif de faon rpt devient rapidement un frein aux cet ensemble soit vide.
performances sur de grosses bases de donnes.
Lensemble des transactions de D qui contiennent
llment
X est dfinit par :
2.3.2 FP-Growth
Rfrence : [7]
D(X) = {T D|X T }
(14)
Date de publication : 2000
Auteurs : Han, Pei, Yin, Mao
Description : FP-Growth (Frequent-Pattern Growth)
Les relations sont filtres selon lquation suiest un algorithme compltement innovant par rapport
vante :
aux autres algorithmes de recherche de rgles associatives presque tous bass sur Apriori.
f req(C0 ) = {(x, Dx )|(x, Dx ) C0 , |Dx | minsup}
(15)
Lalgorithme utilise une structure de donnes compacte appel Frequent-Pattern tree et qui apporte une
solution au problme de la fouille de motifs frquents
dans une grande base de donnes transactionnelle.
En stockant lensemble des lments frquents de la
base de transactions dans une structure compacte, on
supprimer la ncessiter de devoir scanner de faon
rpte la base de transactions. De plus, en triant les
lments dans la structure compacte, on acclre la
recherche des motifs.
2.3.4
SSDM
Rfrence : [5]
Date de publication : 2005
Auteurs : Escovar, Biajiz, Vieira
Algorithme : figures 9 et 12 pages 15 et 16
Description : SSDM (Semantically Similar Data Miner) est un algorithme de la famille de lalgorithme
Apriori auquel est rajout des notions densembles
Un FP-tree est compos dune racine nulle et dun flous afin de renforcer la recherche dassociations sur
ensemble de nuds prfix par llment reprsent. des bases plus robustes.
Un nud est compos par : le nom de llment,
Comme le nom de lalgorithme lindique, SSDM
le nombre doccurrence de transaction o figure la
sappuie sur les similarit smantique des lments
portion de chemin jusqu ce nud, un lien inter-nud
pour effectuer ses recherches. Lalgorithme utilise des
vers les autres occurrences du mme lment figurant
matrices de similarit remplie par lutilisateur du
dans dautres squences de transactions. Une table
systme pour chaque domaine de produits afin
den-tte pointe sur la premire occurrence de chaque
deffectuer ses recherches. Cest le principal inconlment.
vnient de cette mthode base sur des critres huLavantage de cette reprsentation des donnes mains, des tudes sont aujourdhui menes afin de
est quil suffit de suivre les liens inter-nuds pour trouver des mthodes pour remplir ces matrices de
connatre toutes les associations frquentes o figure faon automatique. Lalgorithme ncessite de fixer une
valeur minimale de similarit minSim qui dtermine
llment frquent.
si lalgorithme doit confondre deux lments dun
mme domaine en une seule entit.
2.3.3
Eclat
Rfrence : [17]
Date de publication : 2000
Auteur : Zaki
lui tout seul dans s2 alors il constituera un vnement ensembles de squences frquentes seraient amener
dans s1 . De la mme manire sil faisait parti dun tre beaucoup trop importants.
vnement dans s2 alors il sera rajouter au dernier vLors de la gnration des squences candidates, les
nement de s1 . La jointure est valable uniquement si en
enlevant le premier lment de s1 on obtient la mme jointures se font de la faon suivante :
1. lment contre lment : PB jointe avec PD
sous-squences quen retirant le dernier lment de s2 .
en PBD.
Enfin, llagage consiste retirer les candidats ayant
des sous-squences ou des sous-squences contigus
2. lment contre squence : PB jointe avec P
dont le support serait infrieur au minSupp.
A en PB A.
Une fois lensemble des ksquences candidates
gnr, chaque candidat est dnombr dans la base de
donnes. Afin doptimiser le dnombrement, une table
de hachage est utilise ainsi que la mise en place dune
dure maximale entre lments dune squence ce qui
permet de limiter les recherches. Pour plus de dtails
sur limplmentation de ces techniques, merci de vous
rfrer [15].
Enfin, lalgorithme GSP permet galement dutiliser les informations contenues dans une hirarchisation des donnes de type est-un. Dans ce cas, on
gnralise la recherche aux descendants des lments
recherchs.
2.4.2
SPADE
Rfrence : [18]
Date de publication : 2001
Auteurs : Zaki
Algorithme : figures 15, 16 et 17 page 17
Description : SPADE (Sequential PAttern Discovery
using Equivalence classes) est un algorithme qui utilise la thorie des Treillis afin de limiter son espace
de recherche, ie. il utilise pour chaque ensemble une
borne suprieure et une borne infrieure.
SPADE utilise des ID-listes verticales, id est une
liste de couple (SID4 , EID5 ) par atome. Concernant
la recherche des squences frquentes, deux stratgies
sont proposes : Breadth-First Search (BFS) et DepthFirst Search (DFS). BFS correspond la stratgie
utilise par GSP, elle procde niveau par niveau ce qui
lavantage de permettre un lagage beaucoup plus
intressant que via DPS, cependant, DPS prend beaucoup moins de place en mmoire et cette technique
qui consiste effectuer des recherches branche par
branche est la seule utilisable dans le cas o les
4 SID
5 EID
= Squence IDentifiant .
= Evnement IDentifiant.
Algorithmes
Algorithme 1 ID3
E NTRES : Exemples, attributCible, AttributsNonCible
si estVide(Exemples) alors
retourner un nud Erreur
sinon
si estVide(AttributsNonCible) alors
retourner un nud ayant la valeur la plus reprsent pour attributCible
sinon
si tous les lments de Exemples ont la mme valeur pour attributCible alors
retourner un nud ayant cette valeur
sinon
AttributSlectionn = attribut maximisant le gain dinformation parmi AttributsNonCible
AttributsNonCibleRestants = AttributsNonCible {AttributSlectionn}
nouveauNud = nud tiquet avec AttributSlectionn
pour chaque valeur de AttributSlectionn faire
ExemplesFiltrs= exempleAyantValeurPourAttribut(Exemples, AttributSlectionn, valeur)
nouveauNud.fils(valeur)=ID3(ExemplesFiltrs, AttributSlectionn, AttributsNonCibleRestants)
fin pour
retourner nouveauNud
fin si
fin si
fin si
Algorithme 2 SLIQ-Partition
E NTRES : Dataset S
si (tous les points de S appartiennent la mme classe) alors
Sortir de lalgorithme
fin si
valuer les partitionnements pour chaque attribut A
Utiliser le meilleur partitionnement de S aboutissant sur la cration de S1 et S2
Partition(S1 ) /* Appel rcursif gauche */
Partition(S2 ) /* Appel rcursif droite */
10
Algorithme 3 SLIQ-EvaluateSplits
pour chaque attribut A faire
pour chaque valeur v de la liste dattribut faire
l = feuille contenant llment courrant
mettre jour lhistogramme de la feuille l
si A est un attribut continu alors
tester la sparation pour le critre A v de la feuille l
fin si
fin pour
si A est un attribut discret alors
pour chaque feuille de larbre faire
trouver le sous-ensemble de A qui ralise la meilleure sparation
fin pour
fin si
fin pour
Algorithme 4 SLIQ-UpdateLabels
pour chaque attribut A utiliser comme critre de sparation faire
cration des nouveaux nuds et histogrammes associs
pour chaque valeur v de la liste de lattribut A faire
soit e la classe correspondant llment courrant
trouver la nouvelle classe c de A correspondant la nouvelle sparation
modifier la rfrence de classe de llment de e vers c
fin pour
fin pour
11
Algorithme 5 OC1
E NTRES : T /* Lensemble dentrainement */
H = bestAxis-Parallel(T ) /* Meilleur hyperplan de sparation parallle un axe */
I = impurity(H) /* Impuret de cette sparation */
pour i = 1 jusqu R faire
si i > 1 alors
H = randomisedHyperplan() /* Hyperplan alatoire */
fin si
label Etape_1
rpter
pour j = 1 jusqu d faire
Perturb(H, j) /* Perturber le coefficient j de H */
fin pour
jusqu I soit amliore
label Etape_2
pour i = 1 jusqu J faire
Choisir alatoirement une direction et tenter de perturber H dans cette direction.
si impurity(H) < I alors
aller Etape_1
fin si
fin pour
Il = impurity(H)
si Il < I alors
I = Il
fin si
fin pour
retourner la sparation correspondant I
Algorithme 6 OC1-Perturb
E NTRES : H, m
pour j = 1, .., n faire
Calcule(U j ) /* Calcule U j selon lquation (4) */
Trier U1 , ...,Un en ordre dcroissant
a0m = meilleure sparation de la liste trie des U j
Hl = rsultat de la substitution des am par a0m dans H
si impurity(Hl )<impurity(H) alors
am = a0m
Pmove = Pstag
sinon
/* Pour sortir dun minimum local */
si impurit(Hl )=impurit(H) alors
am = a0m avec probabilit Pmove
Pmove = Pmove 0.1 Pstag
fin si
fin si
fin pour
E PITA, 14-16 rue Voltaire, 94270 Le Kremlin-Bictre, France
12
Algorithme 7 AdaBoost
E NTRES : S = (x1 , y1 ), ..., (xm , ym ) avec xi X, yi Y = 1, +1
D1 (i) = m1 , i /* Initialisation */
pour t = 1 jusqu T faire
St = ChoisirAleatoirement(S, Dt )
WeakLearner = EntrainerClassi f ieurFaible(St , Dt )
ht = ObtenirHypotheseFaible(WeakLearner)
t = ComputeError(ht , St )
t
t = 12 ln( 1
t )
U pdateWeights(t) /* Mise jour de la distribution selon lquation (9) */
fin pour
retourner
!
T
H(x) = sign
t ht (x)
t=1
13
Algorithme 8 Learn++
E NTRES : Pour chaque distribution de la base de donnes Dk k = 1, 2, ..., K :
- une squence de m exemples dentranement S = [(x1 , y1 ), ..., (xm , ym )],
- un algorithme dapprentissage faible WeakLearn,
- un entier Tk pour spcifier le nombre ditrations.
pour k = 1 jusqu K faire
w1 (i) = D(i) = m1 , i /* A moins que lon ai des connaissances pour faire autrement */
pour t = 1 jusqu Tk faire
label 1 : Dt = wt / m
i=1 wt (i) /* Dt est une distribution */
label 2 : T Rt = RandomSubset(S, Dt ) /* Ensemble dentranement choisi alatoirement dans
S selon Dt */
T Et = RandomSubset(S, Dt ) /* Ensemble de test choisi alatoirement dans S selon Dt */
label 3 : ht = WeakLearn(T Rt ) /* Hypothse de X Y */
label 4 : t = ComputeError(ht , St ) /* Calcul de lerreur de ht selon lquation (10) */
si t > 1/2 alors
t = t 1
Supprimer(ht )
goto label 2
sinon
*/
t = normalise(t ) /* Erreur normalise : 1
fin si
label 5 : Ht = argmax t:ht (x)=y log(1/t ) /* Hypothse compose */
yY
Et = ComputeError(Ht , St )
si Et > 1/2 alors
t = t 1
Supprimer(Ht )
goto label 2
fin si
label 6 : Bt = normalise(Et ) /* Erreur composite normalise */
UpdateWeight(t) /* Mise jour des poids des instances selon lquation (11) */
fin pour
fin pour
retourner
K
1
H f inal = argmax log
yY
Bt
k=1 t:H (x)=y
t
14
Algorithme 9 Apriori
E NTRES : T,
L1 = {ensemble de 1-item qui apparaissent dans au moins transactions}
k=2
tant que Lk1 6= faire
Ck = Generate(Lk1 ) /* Gnre lensemble de candidats */
pour t T faire
Ct = SousEnsemble(Ck ,t) /* Slection des candidats de Ck prsents dans t */
pour c Ct faire
count[c] = count[c] + 1
fin pour
fin pour
Lk = {c Ck |count[c] }
k = k+1
fin tant que
S
retourner Lk
k
Algorithme 10 Eclat
E NTRES : Liste des arguments :
- A /* Liste des lments ordonne en ordre croissant */
- D P(A) /* La base de donnes transactionnelles issue de A */
- minSup N /* Le support minimum dfinit par lutilisateur */
F = {(, |D|)} /* Initialisation de lensemble des frquent et de leur support */
C0 = {(x, D({x})|x A} /* Ensemble des transactions contenant un lment de A */
C00 = f req(C0 ) /* C0 est filtre selon (15) */
F = {}
F = addFrequentSupersets(F,C00 ) /* Appel recursif */
retourner F /* Ensemble dlments frquents et leur support */
Algorithme 11 Eclat-addFrequentSupersets
E NTRES : Liste des arguments :
- p P(A) /* Prfixe */
- C /* Matrice des motifs frquents de p */
- F /* Ensemble des motifs frquents et de leur support */
pour (x, Dx ) C faire
q = p {x}
Cq = {(y, Dx Dy )|(y, Dy ) C, y > x}
Cq0 = f req(Cq ) /* Cq est filtre selon (15) */
si Cq0 6= alors
F = addFrequentSupersets(q,Cq0 )
fin si
F = F {(q, |Dx |)}
fin pour
retourner F
15
Algorithme 12 SSDM-CyclesDeSimilarit
A2 = ensemble dassociations floues de taille 2
pour (k = 3; k < size(Dn ); k++) faire
comparer chaque paire dassociation floues dans Ak1
si (prefixe(ai ) = prefixe(a j ), i 6= j) alors
// Si lunion des suffixes est suffisament similaire
si ((suffix(ai ) suffix(a j )) A2 ) alors
ak = ai suffix(a j )
fin si
fin si
fincomparer
Ak = ensemble de tous les ak
fin pour
Sn = groupe de tous les Ak
Algorithme 13 kDCI
E NTRES : D, minSupp
F1 = premierScan(D, minSupp) /* Obtenir les figures doptimisation durant le premier scan */
F2 = secondScan(D0 , minSupp) /* A partir du second scan on utilise une base de donnes D0
temporaire */
k=2
tant que D0 .taille_verticale() > memoire_disponible() faire
k++
Fk = DCP(D0 , minSupp, k)
fin tant que
k++
Fk = DCP(D0 ,V D, minSupp, k) /* Cration dune base de donnes verticale */
dense = V D.est_dense()
tant que Fk 6= faire
k++
si usec le fm oti f () alors
si dense alors
Fk = DCI_dense_keyp(V D, minSupp, k)
sinon
Fk = DCI_sparse_keyp(V D, minSupp, k)
fin si
sinon
si dense alors
Fk = DCI_dense(V D, minSupp, k)
sinon
Fk = DCI_sparse(V D, minSupp, k)
fin si
fin si
fin tant que
16
Algorithme 14 GSP
F1 = {1-squence frquentes}
pour k = 1 jusqu Fk1 6= faire
Ck = Ensemble de ksquences candidates
pour DB faire
pour Ck faire
si alors
Incrmenter le compteur de
fin si
fin pour
fin pour
Fk = { Ck |.sup minSupp}
fin pour
S
retourner k Fk /* Ensemble des squences frquentes */
Algorithme 15 SPADE
E NTRES : minSupp, D /* Support minimal et base de donnes */
F1 ={ lements frquents ou 1-squences frquentes }
F2 ={2-squences frquentes}
={classes quivalentes [X]1 }}
pour [X] faire
EnumerateFrequentSeq([X])
fin pour
17
Algorithme 16 SPADE-EnumerateFrequentSeq
E NTRES : S /* Un sous-treillis et son ID-liste */
pour Ai S faire
Ti =
pour A j S avec j > i faire
R = Ai A j
si Prune(R) = FAUX alors
L(R) = L(Ai ) L(A j )
si (R) minSupp alors
Ti = Ti {R}
F|R| = F|R| {R}
fin si
fin si
fin pour
si DepthFirstSearch alors
EnumerateFrequenteSeq(Ti )
fin si
fin pour
si BreadthFirstSearch alors
pour Ti 6= faire
EnumerateFrequenteSeq(Ti )
fin pour
fin si
Algorithme 17 SPADE-Prune
E NTRES :
pour (k-1)-sous-squence, faire
si [1 ] a t calcul et
/ Fk1 alors
retourner Vrai
fin si
fin pour
retourner Faux
18
Rfrences
[1] Manish Mehta 0002, Rakesh Agrawal, and Jorma Rissanen. SLIQ : A fast scalable classifier for data
mining. In Apers et al. [3], pages 1832.
[2] Rakesh Agrawal, Tomasz Imielinski, and Arun N. Swami. Mining association rules between sets of items
in large databases. In Peter Buneman and Sushil Jajodia, editors, SIGMOD Conference, pages 207216.
ACM Press, 1993.
[3] Peter M. G. Apers, Mokrane Bouzeghoub, and Georges Gardarin, editors. Advances in Database
Technology - EDBT96, 5th International Conference on Extending Database Technology, Avignon,
France, March 25-29, 1996, Proceedings, volume 1057 of Lecture Notes in Computer Science. Springer,
1996.
[4] Leo Breiman, J. H. Friedman, R. A. Olshen, and C. J. Stone. Classification and Regression Trees.
Wadsworth, 1984.
[5] Eduardo L. G. Escovar, Mauro Biajiz, and Marina Teresa Pires Vieira. SSDM : A semantically similar
data mining algorithm. In Carlos A. Heuser, editor, SBBD, pages 265279. UFU, 2005.
[6] Yoav Freund and Robert E. Schapire. A decision-theoretic generalization of on-line learning and an
application to boosting. J. Comput. Syst. Sci., 55(1) :119139, 1997.
[7] Jiawei Han, Jian Pei, Yiwen Yin, and Runying Mao. Mining frequent patterns without candidate
generation : A frequent-pattern tree approach. Data Min. Knowl. Discov., 8(1) :5387, 2004.
[8] Sreerama K. Murthy, Simon Kasif, Steven Salzberg, and Richard Beigel. Oc1 : A randomized induction
of oblique decision trees. In AAAI, pages 322327, 1993.
[9] Salvatore Orlando, Claudio Lucchese, Paolo Palmerini, Raffaele Perego, and Fabrizio Silvestri. kdci : a
multi-strategy algorithm for mining frequent sets. In FIMI, 2003.
[10] Robi Polikar, L. Upda, S. S. Upda, and Vasant Honavar. Learn++ : an incremental learning algorithm for
supervised neural networks. IEEE Transactions on Systems, Man, and Cybernetics, Part C, 31(4) :497
508, 2001.
[11] J. Ross Quinlan. Induction of decision trees. Machine Learning, 1(1) :81106, 1986.
[12] Ross R. Quinlan. C4.5 : programs for machine learning. Morgan Kaufmann Publishers Inc., 1993.
[13] Jeffrey C. Schlimmer and Douglas H. Fisher. A case study of incremental concept induction. In AAAI,
pages 496501, 1986.
[14] John C. Shafer, Rakesh Agrawal, and Manish Mehta 0002. SPRINT : A scalable parallel classifier for
data mining. In T. M. Vijayaraman, Alejandro P. Buchmann, C. Mohan, and Nandlal L. Sarda, editors,
VLDB, pages 544555. Morgan Kaufmann, 1996.
[15] Ramakrishnan Srikant and Rakesh Agrawal.
Mining sequential patterns : Generalizations and
performance improvements. In Apers et al. [3], pages 317.
[16] Paul E. Utgoff. Incremental induction of decision trees. Machine Learning, 4 :161186, 1989.
[17] Mohammed J. Zaki. Scalable algorithms for association mining. IEEE Transactions on Knowledge and
Data Engineering, 12 :372390, 2000.
[18] Mohammed Javeed Zaki. SPADE : An efficient algorithm for mining frequent sequences. Machine
Learning, 42(1/2) :3160, 2001.
19