Documente Academic
Documente Profesional
Documente Cultură
1
2
3
Analiza coului pieei folosind tehnici Data Mining
Avndu-i originea n analiza coului pieei, explorarea regulilor de asociere este una dintre
principalele aplicaii ale data mining-ului. Popularitatea lor se datoreaz n mare parte eficienei
prelucrrii datelor cu ajutorul algoritmilor, n special prin dezvoltarea algoritmului Apriori.
Dndu-se un set de tranzacii ale clienilor, scopul regulilor de asociere este de a gsi corelaii
ntre articolele vndute. Regulile de asociere sunt de tipul dac-atunci reguli cu dou msuri care
cuantific sprijinul i ncrederea regulii pentru un set de date dat. Analiza pieei a fost de asemenea
utilizat i n medicin i n alte servicii industriale. Mai mult, aplicaii ale regulilor de asociere sunt
folosite mult mai departe dect n analiza coului pieei, n detectarea intruilor n diferite reele sau
n atacuri asupra serverelor web i folosirea paginilor webserverelor. Regulile de asociere sunt
folosite i de oamenii de tiin n descoperirea secvenelor ADN i structurilor de proteine i n
investigarea seriilor de timp.
Vom considera explorarea asocierilor n baze de date mari ce conin tranzacii ale clienilor.
n continuare vom face o prezentare de ansamblu a problemei i vom explica abordrile care au fost
folosite pentru a rezolva aceast problem.
1. Cutarea asocierilor
4
Dou tipuri de modele pot fi gsite n cadrul regulilor de asociere:
Primul tip este dac-atunci-reguli i este de forma Dac un client cumpr lapte atunci
el va cumpra i pine.
Al doilea tip se refer la reuniunea de articole n cadrul unui co de cumprturi: Un
client cumpr pine i lapte mpreun.
Descoperirea celui de al doilea model este mai simpl dect a primului, dar putem observa c
la descoperirea primului model ne putem baza pe descoperirea celui de-al doilea.
Conceptul de explorare a regulilor de asociere a fost prima dat introdus de Agrawal et al..
Considerm o pia cu o colecie mare de tranzacii ale clienilor.
O regul de asociere este de tipul X Y unde X este antecedentul iar Y este consecutivul.
X i Y sunt mulimi de articole i o regul nseamn c
un client care cumpr articolele din mulimea X
o s cumpere i articolele din mulimea Y
cu o probabilitate %c unde c se numete ncredere.
O regul poate fi enunat astfel: Optzeci de procente din cei care au cumprat igri, au cumprat i
chibrituri.
O asemenea regul ne ajut s rspundem la ntrebarea Cu ce se vinde Coca Cola?, sau dac suntem
interesai s verificm dependena dintre dou articole A i B putem gsi reguli care au mulimea A
ca i consecutiv i mulimea B ca i antecedent.
Scopul este acela de a genera asemenea reguli dndu-se o baz de date de tranzacii ale
clienilor. n general, algoritmii ncearc s optimizeze viteza de execuie ntruct mrimea bazei de
date a tranzaciilor este foarte mare. Acest tip de informaie poate fi folosit n design-ul catalogului,
structura magazinului, plasarea produselor, obiective de marketing etc. Analiza coului este legat de
aceste informaii, dar este diferit de sistemul de Management al Relaiilor cu Clienii (Customer
Relationship Management - CRM) unde scopul este de a gsi dependene ntre datele demografice
ale clienilor (vrst, starea civil, sex) i produse.
5
Suportul mulimii de articole X este numrul de submulimi care conin toate articolele
mulimii X.
Fie |X| numrul de mulimi de articole care conin mulimea X i |D| numrul tuturor
tranzaciilor, |X,Y| numrul tuturor mulimilor care conin elementele mulimilor X i Y.
Suportul mulimii X este definit n felul urmtor:
|X|
support (X )=
|D|
Regula X Y are suportul s dac %s al tranzaciilor din D conin mulimile X i Y mpreun.
| X ,Y |
support ( X Y )
| D|
Frontiera unei mulimi de articole X const dintr-un set de identificatori de tranzacii al
tranzaciilor din baza de date care conin mulimea X:
cov er ( X ) {tid | (tid, I ) D, X I } .
Atunci, suportul unei mulimi de articole X reprezint numrul de tranzacii din frontiera lui
X:
support(X)=|cover(X)|.
Suportul msoar ct de comune sunt mulimile de articole n baza de date iar ncrederea
msoar ct de puternic este regula. O regul se spune c are ncrederea c dac %c al tranzaciilor
care l conin pe X l conin i pe Y.
support ( X , Y )
confidence( X Y )
support ( X )
Dndu-se o mulime de tranzacii D sarcina explorrii regulilor de asociere este s gseasc
reguli X Y astfel nct suportul regulei s fie mai mare dect un suport minim specificat de
utilizator, numit minsupp, iar ncrederea s fie mai mare dect o ncredere minim specificat de
utilizator, denumit minconf. O mulime de articole se numete frecvent dac suportul ei este mai
mare dect minsupp.
Colecia mulimilor frecvente de articole din D care au suportul mai mare dect minsupp o
vom nota cu F.
F={ X I | support(X) minsupp}.
Sarcina explorrii regulilor de asociere poate fi mprit n dou faze. n prima faz, sunt
gsite mulimile mari de articole folosind minsupp, iar n a doua faz se genereaz regula folosind
minconf.
Colecia regulilor de asociere frecvente i de ncredere care respect suportul minsupp i
ncrederea minconf o vom nota cu R.
R {X Y | X , Y I , X Y {}, X Y F , confidence( X Y ) minconf } .
6
Algoritmii care implementeaz explorarea asocierilor parcurg mulimea datelor de mai multe
ori. Majoritatea algoritmilor gsesc pentru nceput mulimile frecvente de articole apoi, n consecin,
genereaz regula. Deoarece gsirea mulimilor frecvente de articole este partea dificil, cercetrile se
concentreaz pe acest aspect.
Aceast problem a fost aprofundat din diferite perspective prin civa algoritmi. Agrawal,
Imielinski i Swami definesc conceptul de suport i ncredere i propun un algoritm care folosete o
mulime Y cu un singur articol. Algoritmul face mai multe treceri asupra nregistrrilor bazei de date.
La fiecare trecere, suportul fiecrei mulimi de articole este msurat. Aceste mulimi de articole,
denumite mulimi de articole candidat sunt derivate din tuplele bazei de date. Listingul 1 conine
pseudocodul acestui algoritm.
Agrawal i Srikant definesc algoritmii Apriori i AprioriTid n care mulimea Y poate conine
mai multe articole.
7
n explorarea asocierilor pot fi folosite i interogrile iceberg. Un mod eficient de a calcula
aceste interogrile, este dat de Fang. O interogare iceberg reprezint o funcie peste un atribut (sau o
mulime de atribute) pentru gsirea valorilor care sunt mai mari dect un prag stabilit. O interogare
iceberg se efectueaz asupra unei relaii R(t1 , t 2 ,..., t k , ID) . Un exemplu de interogare iceberg este
urmtorul:
SELECT t1,t2,...,tk, count(ID) FROM R
GROUP BY t1,t2,...,tk HAVING count(ID)>T
n cazul nostru t1,t2,...,tk corespund articolelor. Se numesc interogri iceberg pentru c datele
pe care ncercm s le cutm sunt mari, ca un iceberg, dar rezultatele pe care ncercm s le obinem
i care au o valoare mai mare dect un anumit prag, sunt de obicei foarte mici, ca vrful unui iceberg.
Tehnicile sunt aplicate dac rezultatele sunt foarte mici n comparaie cu ntreg set de date.
Toivonen a ales o mostr dintr-o baza de date i a calculat regulile pe aceast mostr. Apoi
regulile au fost verificate pe ntreaga baz de date. n continuare au fost generate mulimile frecvente
de articole care conin aceast mostr folosind un prag foarte mic. Dup gsirea mulimilor de articole,
acestea au fost testate pe ntregul set de date i au fost obinute rezultatele. Algoritmul de alegere a
uuei mostre este dat n listingul 2.
Fu i Kwong nu folosesc constrngeri suport, dar n schimb sunt gsite primele N reguli de
asociere. Se folosete o restricie numai pentru numrul de reguli generate. La fiecare pas al
algoritmului sunt alese N-cele mai interesante k-mulimi de articole, apoi primele N mulimi de
articole cu cele mai mari valori suport. n continuare vom trimite aceste posibile mulimi, care pot
forma o mulime frecvent de articole, n pasul urmtor al algoritmului. Algoritmul este prezentat n
listingul 3. Funciile din algoritm sunt urmtoarele: Find_potential_1_itemset(D,N) caut primele N
cele mai interesante 1-mulimi de articole i le returneaz mpreun cu suportul lor. Apoi mulimile
de articole gsite sunt ordonate descresctor dup suport. Gen_candidate(Pk) folosesc algoritmul
Apiori_Gen pentru a genera candidaii (k+1)-mulimi de articole.
Find_N_potential_k_intemset(Ck,N,k) caut primele N cele mai interesante k-mulimi de articole.
Reduce(newsupport) reduce valoarea pragului dac nu sunt destule k-mulimi de articole.
8
Listingul 3. Gsirea celor N cele mai interesante mulimi de articole
function Itemset_Loop(supportk,lastsupportk,N,Ck,Pk,D){
(P1,support1,lastsupport1)=find_potential_1_itemset(D,N);
C2 = gen_candidate(P1);
for(k=2; k<m; k++){
(Pk,supportk,lastsupportk)=Find_N_potential_k_itemset(Ck,N,k);
if(k<m) Ck+1=Gen_Candidate(Pk); }
Ik = N most Interesting k-itemsets in Pk;
I Ik ;
k
return(I);
}
function Find_N_potential_k_itemset(Ck,N,k){
(Pk,supportk,lastsupportk)=find_potential_k_itemset(Ck,N);
Newsupport = supportk;
for(i=2; i k; i++)
updatedi = FALSE;
for(i=2; i k; i++){
if(i==2){
if(newsupport lastsupporti){
(Pi=find_potential_1_itemsets_with_support(D,newsupport));
if(i<k) Ci+1=gen_candidate(Pi);
if(Ci+1 is updated) updatedi+1=TRUE;
}
}
else{
if((newsupport lastsupporti) || updatedi=TRUE){
(Pi=find_potential_k_itemsets_with_support(Ci,newsupport));
if(i<k) Ci+1=gen_candidate(Pi);
if(Ci+1 is updated) updatedi+1=TRUE;
}
}
if((number of k-items < N)&&(i==k)&&(k==m)){
newsupport=reduce(newsupport);
for(j=2; j k; j++)
updatedj=FALSE;
i=1;
}
}
return(Pk,supportk,lastsupportk);
}
9
mulimile globale mari de articole din DB. Scopul este gsirea mulimii L. Algoritmi paraleli pentru
explorarea regulilor de asociere sunt descrii de Agrawal i Shafer.
Cheung et al. implementeaz un algoritm distribuit pentru explorarea regulilor de asociere.
Algoritmul se numete FDM (Fast Distribution Mining of association rules) i este prezentat n
listingul 4.
10
receive Gj from all other sites S j (i j ) ;
n
Lk Gi ( k )
i 1
divide Lk into GLi(k)(i=1,2,,n)
return (Lk)
11
Bibliography
http://www.iiisci.org/journal/CV$/sci/pdfs/SA052RJ13.pdf
http://pages.cs.wisc.edu/~dbbook/openAccess/thirdEdition/slides/slides3ed-english/Ch26-
DataMining-95.pdf
http://www.saedsayad.com/association_rules.htm
http://www-users.cs.umn.edu/~kumar/dmbook/ch6.pdf
http://www.lsi.us.es/~riquelme/publicaciones/softcomputing.pdf
https://www.youtube.com/watch?v=pQl89W_T0Q0
RAPIDMINER TUTORIAL
https://www.youtube.com/watch?v=HjqNUfXPuIM
12