BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING Asterio K. Tanaka http://www.uniriotec.br/~tanaka/tin0036 [email protected] Introdução a Data Mining Regras de Associação Regras de Associação Goal: Provide an overview of basic Association Rule mining techniques • Association Rules Problem Overview – Large itemsets • Association Rules Algorithms – – – – Apriori Sampling Partitioning Parallel Algorithms • Comparing Techniques • Incremental Algorithms • Advanced AR Techniques Exemplo: Cesta de supermercado • Itens freqüentemente comprados juntos: Pão ⇒ Manteiga • Usos: – – – – Colocação em prateleiras Publicidade Vendas Promoções • Objetivo: aumentar vendas e reduzir custos Definições • • • • Conjunto de itens: I={I1,I2,…,Im} Transações: D={t1,t2, …, tn}, tj ⊆ I Itemset: {Ii1,Ii2, …, Iik} ⊆ I Suporte de um itemset: Percentagem de transações que contém esse itemset. • Itemset grande (freqüente): Itemset cujo suporte está acima de mínimo (MinSup). Association Rules Example I = { Beer, Bread, Jelly, Milk, PeanutButter} Support of {Bread,PeanutButter} is 60% Association Rule Definitions • Association Rule (AR): implication X ⇒ Y where X,Y ⊆ I and X ∩ Y = ∅; • Support of AR (s) X ⇒ Y: Percentage of transactions that contain X ∪Y • Confidence of AR (α) X ⇒ Y: Ratio of number of transactions that contain X ∪ Y to the number that contain X Regra de associação • X ⇒ Y onde X,Y ⊆ I e X ∩ Y = ∅ • É o mesmo que “Se X Então Y” • X é o antecedente da regra, Y é o seu conseqüente • Um algoritmo de regras de associação consistem em descobrir regras desse tipo entre os dados preparados para mineração. {Pão} ⇒ {Leite, Manteiga} pode ser lido como “Se Pão, Então Leite, Manteiga” Suporte e Confiança • Suporte (s) de X ⇒ Y Número de transações que contêm X ∪Y Número total de transações • Confiança (α) de X ⇒ Y Número de transações que contêm X ∪Y Número de transações que contêm X Os valores de suporte e de confiança são usados para delimitar a busca de regras de associação pelos algoritmos. Association Rules Ex (cont’d) Problema da Regra de Associação • Dado um conjunto de itens I={I1,I2,…,Im} e uma base de dados de transações D={t1,t2, …, tn} onde ti={Ii1,Ii2, …, Iik} e Iij ∈ I, o Problema da Regra de Associação é identificar todas as regras de associação X ⇒ Y com um mínimo suporte e confiança. • É um problema de correlação de dados (Link Analysis) • NOTA: Suporte de X ⇒ Y é o mesmo que suporte de X ∪ Y. Técnicas de Regras de Associação Objetivos das técnicas 1. Encontrar Itemsets Grandes. 2. Gerar regras a partir dos Itemsets Grandes. Algoritmo A Priori • Introduzido por Rakesh Agrawal e Ramakrishnan Srikant: Fast algorithms for Mining Association Rules, Conferência VLD, Santiago, Chile, 1994. • O problema de descobrir RAs é decomposto em dois subproblemas: – Encontrar todos os conjuntos ou combinações de itens (itemsets) que têm suporte acima do suporte mínimo, os quais são chamados de Itemsets Grandes. – Usar os Itemsets Grandes para gerar as regras com confiança acima do valor mínimo estabelecido. Algoritmo A Priori • Notação – K-itemset: um conjunto com k itens – Lk: união de itemsets grandes de tamanho k, cada um com dois atributos • Conjunto de itens (itemset) e suporte – Ck: união dos itemsets candidatos (potencialmente grandes) de tamanho k, com os mesmos atributos. Algoritmo A Priori 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) L1 := {itemsets grandes de tamanho 1} para (k = 2; Lk-1 ; k++) faça Ck := Gerar Candidatos (Lk-1) para toda transação t ∈ D faça Ct := subconjunto (Ck , t); para todo candidato c ∈ Ct faça c.count++; fim Lk := {c ∈ Ck tal que c.count >= MinSup} fim; Gerar Regras; Algoritmo Apriori Exemplo Transação Leite Manteiga Pão 1 1 1 0 2 1 0 1 3 1 1 1 4 1 1 1 5 0 1 1 6 1 1 1 7 1 1 1 8 1 0 1 9 1 1 1 10 1 1 1 Algoritmo Apriori Geração dos Conjuntos 1-Itemset Suporte {Leite} 2-Itemset {Leite, Manteiga} {Manteiga} {Leite, Pão} {Pão} {Manteiga, Pão} 3-Itemset {Leite, Manteiga, Pão} Suporte Suporte Algoritmo Apriori Fase da Poda (“Pruning”) • Large Itemset Property: Any subset of a large itemset is large. • Contrapositive: If an itemset is not large, none of its supersets are large. Algoritmo para Gerar RAs Geração das Regras Regra {Leite} Î {Manteiga} {Manteiga} Î {Leite} {Leite} Î {Pão} {Pão} Î {Leite} {Manteiga} Î {Pão} {Pão} Î {Manteiga} {Leite, Manteiga} Î {Pão} {Pão} Î {Leite, Manteiga} {Leite, Pão} Î {Manteiga} {Manteiga} Î {Leite, Pão} {Manteiga, Pão} Î {Leite} {Leite} Î {Manteiga, Pão} Confiança Algoritmo Apriori Quantitativo • Na proposta inicial, a quantidade adquirida de cada item é ignorada. • Que tal uma regra do tipo: – 70% das pessoas que compram entre 1 a 3 litros de leite também compram de 5 a 10 pães. • As medidas de suporte e confiança continuam sendo importantes, mas a informação extra das quantidades acrescenta uma nova dimensão no problema da geração das regras, especialmente no passo de poda. Apriori Vantagens - Desvantagens • Vantagens: – Usa a propriedade de itemset grande para poda. – Paralelizável – Fácil de implementar • Desvantagens: – Assume que o BD de transações é residente em memória. – Requer até m database scans (onde m é o número de itens)