Mineração de itemsets e regras de associação

Documentos relacionados
Aprendizado de Máquina (Machine Learning)

Exemplo: vendas casadas Sei que quem compra A também compra B. Mineração de Dados. Técnicas de Associação. prof. Luis Otavio Alvares

Regras de Associação. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP

Sarajane M. Peres e Clodoaldo A. M. Lima. 19 de novembro de 2015

Aula 13: Regras de Associação. Rafael Izbicki

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Regras de Associação. Roteiro da Aula. Exemplos de perguntas a responder. Motivação e Relevância. Motivação e relevância. Regras de associação:

Minerando regras de associação

Teoria dos Grafos Aula 6

Mineração de Dados (Regras de associação)

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

Árvores Binárias de Busca (ABB) 18/11

Teoria dos Grafos Aula 2

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

Fundamentos de Inteligência Artificial [5COP099]

INF1010 Lista de Exercícios 2

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Curso de Data Mining. Sandra de Amo. Aula 18 - Mineração de padrões em caminhos percorridos por usuários da Internet

Backtracking. Túlio Toffolo Marco Antônio Carvalho BCC402 Aula 10 Algoritmos e Programação Avançada

Teoria dos Grafos Aula 2

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 2. Conceitos Básicos da Teoria da Computação

Recursão PROGRAMAÇÃO EM LÓGICA. Recursão. Sonho Recursivo. Recursão. Recursão. Linguagem Prolog Parte IV

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Linguagens Regulares. Prof. Daniel Oliveira

Aula 10: Tratabilidade

Matemática E Intensivo V. 1

PPGCA/UTFPR câmpus Curitiba -- CAIA003 - Mineração de Dados -- Profs. Celso Kaestner e Heitor Lopes Trabalho #2 Regras de Associação

Mineração de padrões frequentes

Alfabeto, Cadeias, Operações e Linguagens

Mineração de Dados e Aprendizado de Máquinas. Rodrigo Leite Durães.

Teste de Software. Teste Funcional Teste Estrutural. Teste Baseado em Erros (Análise de Mutantes)

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Exercícios: Recursão

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE

Árvores: Conceitos Básicos e Árvore Geradora

Geometria Computacional

Curso de Data Mining

Lista de Exercícios Estrutura de Repetição

PAA-DCC-UFAM. Árvores. Universidade Federal do Amazonas Departamento de Eletrônica e Computação

BC1424 Algoritmos e Estruturas de Dados I Aula 03: Recursão / Recursividade

Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas.

CONCEITO DE ÁRVORE CES-11. A raiz é o único nó que não possui ancestrais. As folhas são os nós sem filhos. Exemplos:

Parte I - Introdução. Agenda. Mineração de Dados com a Ferramenta Weka. Mineração de Dados: Por quê? O que é Mineração? Mineração de Dados: Por quê?

ALGORITMOS AVANÇADOS. UNIDADE V Estruturas de dados dos tipos Árvore Binária e Árvore AVL. Luiz Leão

Teoria dos Grafos Aula 5

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Sentenças Abertas

3. Dois topógrafos, ao medirem a largura de um rio, obtiveram as medidas mostradas no desenho abaixo. Determine a largura do rio.

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial

Algoritmos Combinatórios: Introdução

Conceito Básicos da Teoria de Grafos

Prof. Leonardo Augusto Casillo

Universidade Federal de Uberlândia Faculdade de Matemática

ÁRVORE RUBRO- NEGRA. Prof. André Backes. Também conhecida como árvore vermelhopreto

Linguagens Formais e Autômatos

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

Prof. Júlio Cesar Nievola Data Mining PPGIa PUCPR

DAINF - Departamento de Informática

Algoritmos 2 - Introdução

Números Complexos - Parte I. Interpretação Geométrica dos Números Complexos. z = a+bi

Otimização em Grafos

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

Escola Naval 2010 ( ) ( ) 8 ( ) 4 ( ) 4 (

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Diagrama de Voronoi João Comba

SISTEMAS INTELIGENTES 1 PROF. TACLA/UTFPR/CPGEI-PPGCA

Prof. Jorge Cavalcanti

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Busca em Memória Primária Estrutura de Dados II

Hashing: conceitos. Hashing

Planejamento e Otimização de Experimentos

Árvores Vermelho-Preto

A inserção da chave 6 da árvore acima resulta na árvore abaixo.

Data Warehouse Toolkit: Telecomunicações e Utilitários (Cap. 10)

Transcrição:

Mineração de itemsets e regras de associação Marcelo K. Albertini 3 de Novembro de 2015

2/46 Conteúdo Regras de associação A-priori FP-Tree

3/46 Análise de cestas de compras Uma cadeia de supermercados vende 100000 itens diferentes Por mês, milhões de compras são realizadas contendo diferentes variações de itens Como identificar quais são os produtos mais frequentemente associados? Linguiça e carvão Fralda e cerveja Outros: conceitos relacionados (documentos são cestas de palavras), plágio (documentos são cestas de sentenças)

4/46 Mineração de conjuntos de itens - Itemsets Análise de cesta de itens Obter regras de associação Exemplos Análise de weblogs: encontrar conjuntos de páginas acessadas em comum Itens comprados juntos em supermercado Usuário que visita páginas main, laptop e desconto também visita carrinho-de-compra e pagamento.

5/46 Itemset São items: I = {x 1, x 2,..., x m } Um itemset é um subconjunto X I. I pode ser todas as páginas de um site I pode ser todos produtos vendidos no supermercado k-itemset : conjunto com k itens (cardinalidade k) I (k) : conjunto de todos os k-itemsets

6/46 Transação e Tidset Uma transação é uma tupla com um id t e um itemset X : t, X É o conjunto de identificadores de todas as transações: T = {t 1, t 2,..., t n } Um tidset é um subconjunto de transações T T. T pode ser o conjunto de todas as compras no supermercado T pode ser o conjunto de sessões de visita em um site

7/46 Representação de bases de dados Uma base binária é uma relação de itens e transações D T I Uma transação t tem um item x se (t, x) D t i(t) 1 ABDE 2 BCE 3 ABDE 4 ABCE 5 ABCDE 6 BCD Base binária Transações Tidsets Base vertical D A B C D E 1 1 1 0 1 1 2 0 1 1 0 1 3 1 1 0 1 1 4 1 1 1 0 1 5 1 1 1 1 1 6 0 1 1 1 0 x A B C D E t(x) 1 1 2 1 1 3 2 4 3 2 4 3 5 5 3 5 4 6 6 4 5 5 6

8/46 k-itemsets frequentes: F (k) t i(t) 1 ABDE 2 BCE 3 ABDE 4 ABCE 5 ABCDE 6 BCD

9/46 Itemsets frequentes com suporte mínimo minsup = 3 t i(t) 1 ABDE 2 BCE 3 ABDE 4 ABCE 5 ABCDE 6 BCD

10/46 Suporte de uma regra de associação Uma regra de associação X Y (X, Y I, X Y =, XY = X Y ) tem suporte E tem suporte relativo sup(x Y ) = t(xy ) = sup(xy ) rsup(x Y ) = sup(xy ) D Usuário pode definir um suporte mínimo minsup para as regras desejadas.

11/46 Confiança de uma regra de associação conf (X Y ) = sup(xy ) sup(x ) Regra é forte se tem no mínimo confiança de minconf

12/46 t i(t) 1 ABDE 2 BCE 3 ABDE 4 ABCE 5 ABCDE 6 BCD s = sup(bc E) = sup(bce) = 3 c = conf (BC E) = sup(bce) sup(bc) = 3/4

I é o conjunto de itens de trabalho D é a base binária i(t) é o conjunto de itens da transação t 13/46

Força bruta explora todo o grafo. 14/46

15/46 Avaliação do algoritmo de força bruta Geração dos candidatos: O(2 I ) Avaliar todas as combinações de itens Computação do suporte: O( I D ) Comparar cada itemset candidato com cada transação Total: O( I D 2 I )

16/46 Busca em largura: algoritmo Apriori Propriedades para reduzir espaço de busca Se X Y I, então sup(x ) sup(y ) sup({a, B, C}) sup({a, B, C, D}) Se Y é frequente, então X Y são frequentes Se X não é frequente, então Y X não são frequentes Exploração de árvore de prefixos em nível (busca em largura) Evita (poda) ramos de regras infrequentes Encontra todos k-itemsets usando árvore até altura k

17/46

18/46 Algoritmo Apriori Manutenção de uma árvore de prefixos para buscar subconjuntos mais frequentes Algoritmo em três partes Algoritmo principal para usar a árvore de prefixos em encontrar itemsets mais frequentes Sub-algoritmo para computar o suporte de regras Sub-algoritmo para extender a árvore de prefixos Dois k-itemsets X a e X b com prefixo em comum de tamanho k 1 dão origem a um k + 1-itemset X ab = X a X b X ab é mantido se nenhum subconjunto nele é infrequente X a e X b são removidos

19/46

20/46

21/46

22/46 Custo algoritmo Apriori Custo computacional é O( I D 2 I ) Pois todos itemsets podem ser frequentes Com a poda, custo computacional costuma ser mais baixo Custo de I/O do Apriori é O( I ) e força-bruta é O(2 I ) Custo de I/O é dependente do comprimento da sequência mais longa na base de dados

23/46 Melhoria do algoritmo Apriori: Algoritmo Eclat Problema do Apriori: Cada nível, para computar suporte, na linha 19, geramos subconjunto de itens de cada transação para verificar existência na árvore Mas muitos subconjuntos não existem na árvore Objetivo do Eclat: melhoria do custo de calcular o suporte de regras

24/46 Algoritmo Eclat tidset t(a) = conjunto de ids de transações contendo o item A Para os tidsets t(x ) e t(y ), temos t(x Y ) = t(xy ) = t(x ) t(y ) O suporte de XY é a cardinalidade de t(xy ): sup(xy ) = t(xy ) Exemplo: Se t(a) = 2345 e t(b) = 2456 então sup(xy ) = t(a) t(b) = 245 = 3 Útil na busca em profundidade na árvore de prefixos P classe de equivalência de prefixos Exemplo: PA = {AB, AC, AD, AE}

Inicia recursão com os itens com suporte mínimo 25/46

Exemplo Eclat 26/46

Exemplo Eclat 27/46

Exemplo Eclat 28/46

29/46

30/46 Eclat: custos Complexidade computacional O( D 2 I ) Podem haver 2 I itemsets frequentes Intersecção entre tidset é O(D) I/O: O(2 I / I )

31/46 Melhoria da computação de suporte: FP-Tree e FPGrowth Computação de Suporte com indexação com a frequent pattern tree: FP-Tree FP-tree Cada nó representa um item e suporte da raiz até o próprio nó

32/46 Construção FP-tree Início: raiz contém item Para cada tupla (t, X ) D onde X = i(t), inserir X na árvore incrementando contagem dos nós no caminho de X Se X compartilha prefixo com outro itemset, X vai ser mesmo caminho até formar o prefixo. Contadores iniciam com 1 Inserção na árvore é decrescente pelo suporte Após construção da FP-tree, ela é usada como índice no lugar de D

33/46

34/46

35/46

36/46 Geração de regras de associação Gerar itemsets frequentes é o primeiro passo para obter regras de associação Regra de associação X Y onde XY deve ter suporte mínimo A regra é forte se tem confiança mínima: c = sup(x Y ) sup(x )

37/46 A são itemsets que formarão antecedentes de regras Elemento maximal tem o maior número de itens Y = Z\X Linha 10: poda subconjuntos contendo antecedente com baixa confiança

38/46 Comparação entre algoritmos (Goethals e Zaki, 2004) Total Time (sec) 1000 100 10 all-accidents cofi pie patricia eclat_borgelt apriori_bodon lcm armor apriori_brave eclat_zaki aim fpgrowth* eclat_goethals mafia afopt apriori_borgelt kdci 1 90 80 70 60 50 40 30 Minimum Support (%) 20 10 0 Figura: Accidents: I = 468, E( t(x) ) = 33.8, t(x) = 340 183

39/46 Sumarização de Itemsets Espaço de itemsets é grande Baixo min sup torna problema intratável Busca por representações para itemsets frequentes Itemset maximal Itemset fechado Itemset não-derivável

40/46 Itemsets maximais Itemset X é maximal se não existe Y X tal que sup(y ) min sup Exemplo: ABDE e BCE

41/46 Itemsets fechados Itemset X é fechado se não existe Y X tal que sup(y ) = sup(x ) t(x ) = {t T t X } i(t ) = {x I t T, t x} Operador de fechamento c : 2 I 2 I : c(x ) = i t(x ) = i(t(x )) Propriedade extensivo : X c(x ) Propriedade monotônico : se Xi X J então c(x i ) c(x j ) Propriedade idempotente : c(c(x )) = c(x ) Itemset X é fechado se c(x ) = X

42/46 Geradores minimais (mínimos) Todos subsets de X tem suporte maior que sup(x ). G = {X X F e Y X tal que sup(x ) = sup(y )}

43/46 Tipos de itemsets Geradores mínimos Fechados Maximais