mining frequent patterns without candidate generation alberto bisognin jiawei han, jian pei, and...
TRANSCRIPT
Mining Frequent Patterns without Candidate Generation
Alberto Bisognin
Jiawei Han, Jian Pei, and Yiwen YinSchool of Computing Science
Simon Fraser University
Introdução
– Algoritmo Apriori bastante usado– Boa performance com conjuntos
reduzidos de candidatos– Custoso com grande número de
candidatos
Principais problemas Apriori
– Geração de grande conjunto de candidatos
– Várias verificações do banco de dados– Checagem de grande conjunto de
candidatos
Algoritmo proposto
– Composto de 3 aspectos:– Estrutura de dados mais compacta
denominada FP-tree– Desenvolvida árvore baseada nos
fragmentos dos padrões – Geração ascendente de itens frequentes
Frequent Pattern Tree – FP-tree
– Armazena informações cruciais– Dados são compactados numa estrutura
de dados bem menor– Reduz o espaço de busca– Somente itens frequentes de
comprimento 1 tem nodo na árvore– Disposição dos nós permite que nós mais
frequentes sejam melhor compartilhados– Cada nodo contem 3 campos: nome do
item, contador e nodo link
Projeto e Construção da FP-tree
Dado um banco de dados e considerando um suporte mínimo – Varrer o banco de dados para encontrar o conjunto de itens
frequentes que superam o suporte– Armazenar o conjunto de itens frequentes em uma estrutura
compacta (evitar verificação do banco de dados)– Ordenar os itens frequentes em ordem decrescente – Criar a raiz da árvore, denominada null– Examinar a primeira transação para construir o primeiro ramo da
árvore, seguindo sempre a ordem decrescente dos itens frequentes
– Na próxima transação, se esta tiver itens semelhantes já apresentados na árvore, o contador do mesmo item deve ser incrementado e se apresentar nodos diferentes, estes devem ser incluídos no ramo da árvore
– Se próxima transação tiver itens diferentes da anterior, novo ramo será criado
Exemplo FP-tree
Suporte=3
Alguns detalhes
– Cada transição do banco de dados é mapeada para um caminho na árvore
– Frequencia dos itens são armazenados na árvore
– O tamanho é limitado pela ocorrência dos itens frequentes no banco de dados
– A altura de uma árvore é limitada ao número máximo de itens de uma transação do banco de dados
– Um caminho pode representar itens frequentes em múltiplas transações
Comparativo com FP-tree
Teste com base de dados Connect-4 usado em MaxMiner
Contém 67557 transações com 43 itens
Suporte de 50%
Número total de ocorrência de itens frequentes:2219609
Número total de nodos numa árvore FP-tree:13449
Relação de redução de 165,04 vezes
Gerando padrões frequentes através da FP-tree
– Para qualquer item freqüente ai, todos os possíveis padrões que contem ai podem ser obtidos seguindo os nó-links de ai, a partir de ai na estrutura da FP-tree.
– Procura de padrões frequentes associados a um item – Padrões de caminhos simples são gerados pela
combinação dos itens deste ramo– Caminhos compostos é gerada uma árvore de padrão
base para cada item
Árvore condicional de m
Árvores condicionais
Algoritmo FP-growth
Avaliação experimental do algoritmo
Comparação entre os métodos FP-growth, Apriori e TreeProjection
Computador Pentium 450MHz 128Mbytes Ram Windows NT
Programas escritos em Microsoft Visual C++6.0
Banco de dados:
D1-T25.I10.D10K 1000 itens 10000 transações
D2-T25.I20.D100K 10000 itens
Avaliação FP-growth e Apriori
Tempo de execução FP-growth
Avaliação FP-growth e Apriori
Avaliação FP-growth e TreeProjection
Avaliação FP-growth e TreeProjection
Conclusão
– Gera uma árvore bastante compacta– Reduz a geração de candidatos– Redução do tamanho das bases subsequentes de padrões
condicionais e das árvores condicionais– Muito eficiente para banco de dados com grande número
de transações e suportes baixos