690 likes | 805 Vues
Associação: algoritmos (parte 2) prof. Luis Otavio Alvares INE/UFSC. CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets. Utiliza uma representação comprimida do banco de dados usando uma FP-tree
E N D
Associação: algoritmos (parte 2)prof. Luis Otavio AlvaresINE/UFSC
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets • Utiliza uma representação comprimida do banco de dados usando uma FP-tree • Depois da construção da FP-tree utiliza a abordagem de dividir para conquistar para encontrar os conjuntos de itens fechados frequentes
FP-Tree • FP-Tree é uma estrutura de dados compacta para a mineração eficiente de padrões freqüentes. • Considere o seguinte banco de dados transacional (duas primeiras colunas) e suporte = 3:
FP-Tree - Observações • 1. Como somente os itens freqüentes serão importantes na mineração de padrões freqüentes, é necessário realizar uma varredura no banco de dados para identificar o conjunto de itens freqüentes. • 2. O armazenamento do conjunto de itens freqüentes em uma estrutura compacta pode evitar varreduras repetidas do banco de dados.
FP-Tree - Observações • 3. Se múltiplas transações compartilham um conjunto de itens freqüentes idêntico, eles podem ser agrupados em um único conjunto com o número de ocorrências registrado em uma variável count. • É fácil verificar se dois conjuntos são idênticos se os itens freqüentes de todas as transações estão ordenados conforme uma ordem fixada.
FP-Tree - Observações • 4. Se duas transações compartilham um prefixo comum, conforme uma ordenação dos itens freqüentes, as partes compartilhadas podem ser agrupadas utilizando uma única estrutura de prefixo, desde que a variável count seja computada corretamente. • Se os itens freqüentes estão ordenados de forma decrescente de valores de freqüência, existem melhores chances de que mais prefixos possam ser compartilhados.
FP-Tree - Execução • 1. Primeira varredura no banco de dados para obter a lista ordenada L dos itens freqüentes: • L = <(f:4), (c:4), (a:3), (b:3), (m:3), (p:3)>
FP-Tree - Execução • 2. Criação da raiz, nomeada com null. root
FP-Tree - Execução • 3. Nova varredura do BD, transação por transação: root f:1 c:1 a:1 m:1 p:1
FP-Tree - Execução • 3. Nova varredura do BD, transação por transação: root f:2 c:2 a:2 b:1 m:1 m:1 p:1
FP-Tree - Execução • 3. Nova varredura do BD, transação por transação: root f:3 b:1 c:2 a:2 b:1 m:1 m:1 p:1
FP-Tree - Execução • 3. Nova varredura do BD, transação por transação: root c:1 f:3 b:1 b:1 c:2 a:2 p:1 b:1 m:1 m:1 p:1
FP-Tree - Execução • 3. Nova varredura do BD, transação por transação: root c:1 f:4 b:1 b:1 c:3 a:3 p:1 b:1 m:2 m:1 p:2
FP-Tree - Análise • 2 varreduras do banco de dados: • Contar itens frequentes • Gerar a FP-tree • O custo para inserir uma transação Trans na FP-Tree é O(|Trans|), onde |Trans| é o número de itens freqüentes em Trans.
FP-Tree - Análise • Dado um banco de dados transacional DB e um suporte mínimo minSup, sua FP-Tree correspondente contém toda a informação necessária para a mineração de padrões freqüentes no DB (completeness). • Sem considerar a raiz, o tamanho de uma FP-Tree é limitado ao total de ocorrências dos itens freqüentes no DB e a altura é limitada pelo maior número de itens freqüentes em uma transação (compactness). • Diferentemente do método Apriori-like que pode gerar um número exponencial de candidatos no pior caso, sob nenhuma circunstância uma FP-Tree com um número exponencial de nodos será gerada.
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets. Jian Pei, Jiawei Han e Runying Mao
Seja o seguinte arquivo de dados e a respectiva FP-tree (minsup=2) null c:4 e:1 a:1 e:3 f:1 a:1 f:3 d:1 a:1 d:1
Lista de itens frequentes (minsup=2) f_list = <c:4, e:4, f:4, a:3, d:2> • Os frequent closed itemsets podem ser divididos em 5 subconjuntos não sobrepostos: • Os subconjuntos que contém d • Os subconjuntos que contém a mas não d • Os subconjuntos que contém fmas não anem d • Os subconjuntos que contém emas não f, anem d • Os subconjuntos que contém somente c
Os subconjuntos que contém d d-conditional FP-tree original null sup(d) = 2 TDB|d = <cefa, cfa> null c:4 e:1 sup(cefad) = 1 sup(cfad) = 2 c:2 a:1 e:3 f:1 a:1 e:1 f:1 f:3 a:1 d:1 f:1 a:1 a:1 d:1 cfad é um frequent closed itemset
Os subconjuntos que contém a mas não d a-conditional FP-tree original null null c:4 e:1 c:2 e:1 a:1 e:3 f:1 e:1 f:1 a:1 sup(a) = 3 TDB|a = <cef, cf, e> Nenhum tem suporte igualao de a: sup(cefa) = 1 sup(ea) = 2 sup(cfa) = 1 , então a é um frequent closed itemset f:3 f:1 d:1 a:1 d:1
a-Conditional • Os frequent closed itemsetspodem ser divididosem 3 subconjuntosnãosobrepostos: • Os subconjuntosquecontémafmasnãod • Os subconjuntosquecontémaemasnãodnemf • Os subconjuntosquecontémac masnãod, eouf f_list_a = <c : 2, e : 2, f : 2> null c:2 af:2 e:1 ac:2 ae:2 minsup=2 null null null TDB|ea = <c> c:2 e:1 f:1 c:2 c:1 e:1 f:1 ae é um frequent closed itemset. af:2 e ac:2 não são porque tem o mesmo suporte que cfad:2, que é um CFI
Os subconjuntos que contém f mas não a nem d f-conditional FP-tree original null null sup(f) = 4 TDB|f = <ce, c> c:4 c:4 e:1 a:1 e:3 f:1 e:3 sup(cef) = 3 sup(cf) = 4 cf é frequent closed itemset, pois sup(f) = sup(cf) cef é frequent closed itemset, pois não é subconjunto de qqueritemset encontrado com suporteidêntico. a:1 f:3 d:1 a:1 d:1
Os subconjuntos que contém e mas não f, a nem d null FP-tree original e-conditional null c:3 sup(e) = 4 TDB|e = <c> c:4 e:1 a:1 e:3 f:1 sup(ce) = 3 cenão é frequent closed itemset, pois sup(ce) = sup(cef) que é FCI eé frequent closed itemset, pois o seu suporte é 4 e não 3 a:1 f:3 d:1 a:1 d:1
Os subconjuntos que contém somente c Não é necessáriopesquisar no c-Conditional Database poisc é um Subconjunto de cf,que é um frequent closed itemset com o mesmosuporte de c.
Mineração de Padrões Sequenciais Agrawal, R.; Srikant, R., "Mining sequential patterns". Proceedings of the Eleventh International Conference onData Engineering, pp.3-14, 1995
MP-Sequenciais • Mineração de Padrões • Quais itens são comprados juntos em uma transação? • Mineração de Padrões Sequenciais • Quais itens são comprados em sequência, mas em ocasiões diferentes?
MP-Sequenciais • Suporte mínimo: • Relativo a quantidade de clientes em relação ao número total de clientes • Diferente do apriori que considera a quantidade total de transações • Comparando • MP: • Ocorrência do item número de transações • MP-Sequencial: • Número de clientes com a transação número total de clientes
MP-Sequenciais • Problema: • Dado uma base de dados D com transações, quais as associações das transações dos clientes com o passar do tempo?
MP-Sequenciais • Definições: • Conjunto de Itens: itens comprados ao mesmo tempo (na mesma transação) • Sequência: sequência de conjuntos de itens • Sequência máxima: Não está contida em nenhuma outra sequência. • Exemplos: • <(3) (4,5) (8)> • <(3) (4,5) (8)> está contido em <(7) (3,8) (9) (4,5,6) (8)> • A sequência <(3) (5)> não está contida em <(3,5)> Notação: O que está entre parênteses representa uma transação e os números representam os itens comprados. A ordem das transações é da esquerda para a direita
MP-Sequenciais • Problema: • Dada uma base de dados D com transações, quais as associações das transações dos clientes com o passar do tempo? • Dado D, mineração de padrão sequencial é encontrar as sequências máximas entre todas as sequências que tem certo suporte mínimo. • Ex:
MP-Sequenciais • Relembrando o suporte • MP: • Ocorrência do item número de transações • MP-Sequencial: • Número de clientes com a transação número de clientes
Fases • Sort • Litemset • Transformação • Sequencia • Maximal
Sort • Ordenar a base de dados por ID do comprador e por data da transação; • Realizado de forma simples por um comando SQL;
Sort Arquivo original Após o sort
Fases • Sort • Litemset • Transformação • Sequencia • Maximal
Litemset • Encontrar o conjunto de todos os l-itemsets (itemsets frequentes). • Passos: • Agrupar dados por ID; • Gerar itemsets frequentes;
Litemset – encontrar os conjuntos frequentes Considerando minsup = 2, os conjuntos frequentes são: (30), (40), (70), (90) e (40,70)
Fases • Sort • Litemset • Transformação • Sequencia • Maximal
Transformação • Em uma transformação de sequência de um comprador: • Cada transação é substituída pelo conjunto de todos os l-itemsets contidos na transação; • Passos: • Transformação (considera minSup) • Mapeamento;
Fases • Sort • Litemset • Transformação • Sequencia • Maximal
Sequencia • Usa o conjunto de l-itemsets para encontrar as sequências máximas desejadas. • Conta todas as l-sequencias, incluindo as não máximas; • Ex.: AprioriAll
Fases • Sort • Litemset • Transformação • Sequencia • Maximal
Maximal • Encontrar as sequências máximas entre as sequências frequentes.
Exemplo de algoritmo: AprioriAll • A cada fase gera as k-sequências frequentes • Recebe os dados da fase de transformação para inicializar o 1-sequência • Base de exemplo (diferente da anterior): • Suporte mínimo: 2