Metodologie per Sistemi Intelligenti Regole di Associazione Prof. Pier Luca Lanzi Laurea in Ingegneria Informatica Politecnico di Milano Polo regionale di Como
Esempio
Esempio
Regole di Associazione Scopo Trovare Associazioni interessanti e relazioni di correlazione in grandi insiemi di transazioni Dominio applicativo Grandi collezioni di dati che possono essere raccolti con grande facilità in cui esista un concetto di transazione Ad esempio, scontrini di supermercato, log di trasmissioni di cellulari
Regole di Associazione computer software_finanziario con confidenza 0.6 supporto 0.02 Affermache: computer e software_finanziario sono acquistati insieme dal 2% dei clienti Il 60% dei clienti che acquistano computer acquistano anche software finanziario
Regole di Associazione pane,burro latte con supporto 0.05 confidenza 0.9 Afferma che: pane, burro e latte compaiono insieme nel 5% degli scontrini Il 90% degli scontrini che contengono pane e burro contengono anche latte
Regole di Associazione Le regole di associazione sono una sorta di implicazioni La regola X Y viene interpretata come nelle transazioni in cui compare X compare anche Y X è detto corpo o rule body, Y è detta testa o rule head
Supporto e Confidenza Le regole di associazione sono caratterizzate da due misure statistiche: supporto, e confidenza. Il supporto indica la percentuale di transazioni che contengono entrambe X ed Y La confidenzaindica, date le transazioni che contengono X, qual è la percentuale di transazioni che contengono Y
Esempio
Esempio Supporto? Confidenza?
Esempio Supporto = percentuale di transazioni in cui compaiono entrambi i simboli. Supporto = 4/12 = 0.33
Esempio Confidenza = date le transazioni contenenti un quadrato nero, qual è la percentuale di transazioni che contengono anche un triangolo bianco? Confidenza = 4/5 = 0.80
Formalmente... Dati un insieme I di item {I 1 I n } un insieme D di transazioni T, T I due insieme X e Y di elementi, X I Y I la funzione freq(x,d) che restituisce pa percentuale di transazioni in D che contengono X
Formalmente... La regola X Y indica che le transazioni T che contengono X (X T), conterranno molto probabilmente anche gli elementi di Y (Y T) Il supporto di X Y rispetto a D è calcolato come support(x Y,D) = freq(x Y,D) La confidenza di X Y rispetto a D è calcolata come confidence(x Y,D) = freq(x Y,D)/freq(X,D)
Formalmente Il problema di estrarre regole di associazione è definito come il problema di estrarre tutte le regole con un supporto superiore al parametro min_sup una confidenza superiore al parametro min_conf Le regole che soddisfano i vincoli di supporto minimo e confidenza minima sono dette strong association rules
Tipi di Regole di Associazione Le regole di associazione si caratterizzano in base a diverse caratteristiche quali: il tipo di dati trattati (nominali o numerici) il numero di tipi di elementi coinvolti (T I 1 I n ) il numero di livelli di astrazione coinvolti
Itemset Un insieme di item è detto itemset Un insieme di k item è detto k-itemset L insieme {pane,burro,latte}è un 3-itemset Il Support count indica il numero di transazioni che contengono un certo itemset
Itemset La frequenza di un itemset è la percentuale di transazioni in cui tutti gli elementi dell itemset compaiono Un itemset con frequenza superiore a min_sup è detto frequent itemset L insieme dei itemset di ordine k è indicato con L k
Esempio Qual è la frequenza dell itemset formato da un triangolo, un quadrato ed un esagono bianchi? 4/12
Come funziona? È un processo in due fasi Nella prima fase vengono estratti tutti i frequent itemset Nella seconda fase vengono estratte tutte le regole di associazione che soddisfano i vincoli di min_sup e min_conf
Calcolo dei frequent itemset Se un itemset X non soddisfa min_sup allora nessuna sua estensione X Y soddiferà min_sup Si parte dall insieme L1 dei frequent itemset contenenti un solo elemento L1 è utilizzato per trovare L2 L2 è utilizzato per trovare L3 Il processo continua fino a quando non è più possibile trovare frequent k-itemset
Algoritmo generale 1. Nella prima fase, il supporto di ogni item viene contato e vengono determinati i frequent itemset di dimensione 1 2. In ogni passo successivo, i frequent itemset determinati al passo precedente sono utilizzati per generare i nuovi itemset detti candidate itemsets. 3. Il supporto di ogni candidato è calcolato e i frequent itemset sono determinati 4. Il processo continua fino a quando non vengono trovati nuovi frequent itemset.
Algoritmo generale Tutti gli algoritmi si basano sulla downward closure property Se un itemset ha supporto minimo, allora ogni sottoinsieme dell itemset ha pure supporto minimo Quindi si applica una cosìdetta level-wise search
Algoritmo generale Passo 1 il supporto di ogni item è calcolato ottenendo così i frequent itemset di dimensione 1 Passo 2 I frequent itemset ottenuti al passo precedente sono estesi ottenendo i nuovi itemset candidati Passo 3 Viene calcolato il supporto dei nuovi itemset e solo quelli che soddisfano il minimo supporto sono tenuti Di volta in volta il numero di candidati diminuisce, la procedura finisce quando non ci sono più candidati che soddisfino la condizione di minimo supporto
Algoritmo Apriori L 1 = {large 1-itemsets} for (k=2; L k-1 ; k++) { C k = apriori-gen(l k-1 ); // nuovi candidati forall transactions t { C t = subset (C k, t) forall candidates c C t do c.count++ } L k = {c C t c.count minsup} } return k L k
Algoritmo AIS Due passi fondamentali Estensione degli itemset Determinazione dei candidate itemset Gli itemset candidati sono generati dinamicamente I nuovi itemset candidati item sets sono generati estendendo i frequent itemset generati al passo precedente
Algoritmo SETM L algoritmo è ottenuto esprimendo l approccio generale attraverso l uso di query SQL Due passi fondamentali Gli itemset candidati sono generati attraverso join Viene calcolato il supporto così da determinare i frequent itemset Anche in questo caso, i candidati sono generati dinamicamente (on the fly) I nuovi candidati sono generati estendendo i frequent itemset del passo precedente con altri elementi della transazione
Esempio Transazioni L 1 C 2 TID Items Itemset Support Itemset Support 100 1 3 4 {1} 2 {1 3}* 2 200 2 3 5 {2} 3 {1 4} 1 300 1 2 3 5 {3} 3 {3 4} 1 400 2 5 {5} 3 {2 3}* 2 C 3 Itemset Support {1 3 4} 1 {2 3 5}* 2 {3 5}* {1 2} {1 5} 2 1 1 {2 5}* 3 {1 3 5} 1
Dagli itemset alle regole... Dati due frequent itemset X e Y confidence(x Y) = P(Y X)= = support_count(x Y,D)/support_count(X,D) INPUT frequent itemset FI OUTPUT strong association rules for every frequent itemset X of FI for every non empty subset s of X { if support_count(x)/support_count(s)>min_conf output the rule s (X-s) }
Formalmente... un insieme I di item {I 1 I n } un insieme D di transazioni T, T I due insieme X e Y di elementi, X I Y I data la funzione freq(x,d) che restituisce pa percentuale di transazioni in D che contengono X La regola X Y indica che le transazioni T che contengono X (X T), conterranno molto probabilmente anche gli elementi di Y (Y T) Il supporto di X Y rispetto a D è calcolato come support(x Y,D) = freq(x Y,D) La confidenza di X Y rispetto a D ècalcolata come confidence(x Y,D) = freq(x Y,D)/freq(X,D)
Riferimenti J.Han & M.Kamber. Data Mining: Concepts and techniques Morgan Kaufmann (2001). Capitolo 6 e 8.