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