Mining Frequent Patterns without
Candidate Generation
Jiawei Han, Jian Pei, and Yiwen Yin
School of Computing Science
Simon Fraser University
Alberto Bisognin
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
Download

ppt