Associação: algoritmos (parte 2) prof. Luis Otavio Alvares INE/UFSC

Slides:



Advertisements
Apresentações semelhantes
Correção – Completude – Performance – Escalabilidade
Advertisements

Artigo: ‘Mining Frequent Patterns without Candidate Generation’
CLOSET: An Efficiet Algorithm for Mining Frequent Closed Itemsets
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets Jian Pei, Jiawei Han e Runying Mao Apresentação preparada por Alexandre Lorenzatti.
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Mineração de Padrões Sequenciais
Mining Frequent Patterns without Candidate Generation
Análise Desenvolvimento/Testes Entrega Suporte. Nome da atividade Análise de Negócio Fase Análise Finalidade Esta atividade tem por finalidade analisar.
Árvores Binárias Estruturas de Dados Melissa Marchiani Palone Zanatta.
Gestão da Tecnologia da Informação Fundamentos de Sistemas de Banco de Dados Faculdade de Tecnologia Senac Jaraguá do Sul.
1) Defina sequências numéricas.
Qual é o melhor regime para sua empresa?
Análise & Projeto – Especificação de Processos
Banco de Dados I Modelagem Relacional
Ordenação dos Elementos de um Vetor - Bubble Sort e Quick Sort .
Probabilidade e Estatística Aplicadas à Contabilidade II
DISTRIBUIÇÃO AMOSTRAL E ESTIMAÇÃO
Metodologia do Ensino da Matemática – Aula 12
Probabilidade e Estatística Aplicadas à Contabilidade I
ESTATÍSTICA . SÍNTESE DO 10.º ANO . RELAÇÕES BIDIMENSIONAIS (11.º ANO)
RODOLFO SOARES TEIXEIRA OBMEP NA ESCOLA
Métodos de Pesquisa: Seqüencial e Binária
Estatística: Aplicação ao Sensoriamento Remoto SER ANO 2017 Intervalo de Confiança Camilo Daleles Rennó
4. Complexidade média Este capítulo considera a complexidade média, examinando casos ilustrativos de análise de algoritmos e de projeto de estruturas.
FEUP/LEEC Algoritmos e Estruturas de Dados 2001/2002
Prof. Wellington Franco Manipulação de Arquivos em C
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
EGP, CPC, 2004/05 Problema e Algoritmos de Colocação de Professores
ALGEBRA LINEAR AUTOVALORES E AUTOVETORES Prof. Ademilson
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
Computação Gráfica: Visibilidade Prof. Rafael Vieira
Pontifícia Universidade Católica de Goiás Escola de Engenharia
Análise de Algoritmo Profº Me. Jeferson Bussula Pinheiro
FUNDAMENTO DE PROGRAMAÇÃO
IP – Repetições Prof. Eduardo Falcão.
Manual para preenchimento de informações
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS
Intersecção e Reunião de Intervalos
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Cálculo do clique maximal de um grafo
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Arranjo Físico Celular
Análise Sintática Botton Up Diomara M. R. Barros
ESTATÍSTICA AULA 04 ANÁLISE EXPLORATÓRIA DE DADOS I – Unidade 3
Movimento Retilíneo Uniforme Movimento Retilíneo Variado Vetores
Tópicos Especiais Mineração de Dados
Pesquisa e Ordenação de Vetor
DISTRIBUIÇÃO DE FREQUÊNCIA
EEEM Profª Salomé Carvalho
Organização básica de arquivos
AULA 5 ESTATÍSTICA DANIEL PÁDUA.
Aula 07 e 08 - Funções Definição de função, representação de funções, função crescente e decrescente, função linear , polinomial, racionais e algébricas.
Controlo da Qualidade Ferramentas Básicas
Sistemas Operacionais
Complexidade de Algoritmos
Árvores Binárias de Pesquisa e Balanceamento usando Árvores AVL
DSI – Desenvolvimento de Sistemas Inteligentes
Métodos Quantitativos
Mestrado Profissional em Física Médica
ALGORITMOS.
Modelo de Análise.
Geometria Computacional
Estatística: Aplicação ao Sensoriamento Remoto SER ANO 2018 Intervalo de Confiança Camilo Daleles Rennó
Aula 05 Distribuição de freguência Prof. Diovani Milhorim
SISTEMAS DISTRIBUIDOS
Prof. Lorivaldo Rodrigues Barbosa
Aula 7 Professores: Conteúdo: Dante Corbucci Filho
Sistemas de Informação
Funções de Duas ou Mais Variáveis
Distribuição Binomial
Transcrição da apresentação:

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 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: TID Itens Itens Freqüentes (Ordenados p/ frequência) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n

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. 12/05/2018

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. 12/05/2018

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. 12/05/2018

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)> TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n

FP-Tree - Execução 2. Criação da raiz, nomeada com null. root TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n 12/05/2018

FP-Tree - Execução 3. Nova varredura do BD, transação por transação: Item Início da lista de nodos f c a b m p root f:1 c:1 a:1 TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n m:1 p:1 12/05/2018

FP-Tree - Execução 3. Nova varredura do BD, transação por transação: Item Início da lista de nodos f c a b m p root f:2 c:2 a:2 TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n b:1 m:1 m:1 p:1 12/05/2018

FP-Tree - Execução 3. Nova varredura do BD, transação por transação: Item Início da lista de nodos f c a b m p root f:3 b:1 c:2 a:2 TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n b:1 m:1 m:1 p:1 12/05/2018

FP-Tree - Execução 3. Nova varredura do BD, transação por transação: Item Início da lista de nodos f c a b m p root c:1 f:3 b:1 b:1 c:2 a:2 p:1 TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n b:1 m:1 m:1 p:1 12/05/2018

FP-Tree - Execução 3. Nova varredura do BD, transação por transação: Item Início da lista de nodos f c a b m p root c:1 f:4 b:1 b:1 c:3 a:3 p:1 TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n b:1 m:2 m:1 p:2 12/05/2018

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. 12/05/2018

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. 12/05/2018

Mineração de Padrões Sequenciais Agrawal, R.; Srikant, R., "Mining sequential patterns". Proceedings of the Eleventh International Conference on Data Engineering, pp.3-14, 1995

MP-Sequenciais Mineração de Padrões Mineração de Padrões Sequenciais 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: Comparando 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: Exemplos: 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

Padrões sequenciais (minsup=25%) 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: comprador Sequencia 1 (30) (90) 2 (10, 20) (30) (40, 60, 70) 3 (30, 50, 70) 4 (30) (40, 70) (90) 5 (90) Padrões sequenciais (minsup=25%) (30) (90) (30) (40, 70)

MP-Sequenciais Relembrando o suporte MP: MP-Sequencial: 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 ID comprador Data Itens 1 25/03/93 30 30/03/93 90 2 10/06/93 Arquivo original Após o sort ID comprador Data Itens 1 25/03/93 30 30/03/93 90 2 10/06/93 10, 20 5 12/06/93 15/06/93 20/06/93 40, 60, 70 3 25/06/93 30, 50, 70 4 30/06/93 40, 70 25/07/93 ID comprador Data Itens 1 25/03/93 30 30/03/93 90 2 10/06/93 10, 20 15/06/93 20/06/93 40, 60, 70 3 25/06/93 30, 50, 70 4 30/06/93 40, 70 25/07/93 5 12/06/93

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 – Agrupamento ID comprador Data Itens 1 25/03/93 30 30/03/93 90 2 10/06/93 10, 20 15/06/93 20/06/93 40, 60, 70 3 25/06/93 30, 50, 70 4 30/06/93 40, 70 25/07/93 5 12/06/93 ID comprador Itens 1 <(30) (90)> 2 <(10, 20) (30) (40, 60, 70)> 3 <(30, 50, 70)> 4 <(30) (40, 70) (90)> 5 <(90)>

Litemset – encontrar os conjuntos frequentes ID comprador Itens 1 <(30) (90)> 2 <(10,20) (30) (40,60, 70)> 3 <(30, 50, 70)> 4 <(30) (40, 70) (90)> 5 <(90)> 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;

Transformação – suporte mínimo ID comprador Itens 1 <(30) (90)> 2 <(10,20) (30) (40, 60, 70)> 3 <(30, 50, 70)> 4 <(30) (40, 70) (90)> 5 <(90)> ID comprador Itens 1 <{(30)} {(90)}> 2 <{(30)} {(40), (70), (40 , 70)}> 3 <{(30),(70)}> 4 <{(30)} {(40), (70), (40, 70)} {(90)}> 5 <{(90)}>

Transformação – Mapeamento ID comprador Itens 1 <{(30)} {(90)}> 2 <{(30)} {(40), (70), (40 70)}> 3 <{(30), (70)}> 4 <{(30)} {(40), (70), (40 70)} {(90)}> 5 <{(90)}> Mapa Item Símbolo (30) 1 (40) 2 (70) 3 (40 70) 4 (90) 5 ID comprador Itens 1 {1} {5} 2 {1} {2, 3, 4} 3 {1, 3} 4 {1} {2, 3, 4} {5} 5 {5}

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.

Maximal l-sequências {1} {5} {1} {2, 3} {1} Mapa Item Símbolo (30) 1 (40) 2 (70) 3 (40 70) 4 (90) 5 l-sequências (30) (90) (30) (40 70)

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 Base de Dados {1 5} {2} {3} {4} {1} {3} {4} {3 5} {1} {2} {3} {4} {1} {3} {5} {4} {5} 1-sequencia Suporte 1 4 2 2 3 4 5

AprioriAll Verifica o suporte mínimo passando pelo banco Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco

AprioriAll Continuando com o exemplo para gerar 2-sequências frequentes: gera os candidatos 2-sequencia 1 1 2 5 4 4 1 2 3 1 4 5 1 3 3 2 5 1 1 4 3 3 5 2 1 5 3 4 5 3 2 1 3 5 5 4 2 2 4 1 5 5 2 3 4 2 2 4 4 3 1-sequencia Suporte 1 4 2 2 3 4 5

AprioriAll Verifica o suporte mínimo passando pelo banco Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco

AprioriAll Verifica o suporte mínimo para as 2-sequências (Passando pelo banco): Retira as que não possuem o suporte mínimo: 2-sequencia Suporte 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 Base de Dados {1 5} {2} {3} {4} {1} {3} {4} {3 5} {1} {2} {3} {4} {1} {3} {5} {4} {5}

AprioriAll Verifica o suporte mínimo passando pelo banco Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco

AprioriAll Continuando com o exemplo para gerar 3-sequências frequentes , inicialmente gera as 3- sequências candidatas

? AprioriAll 2-sequencia Suporte 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 ?

AprioriAll 5 2 1 ? 1 2 5 ? 2-sequencia Suporte 1 2 2 1 3 4 5 2 1 ? 2-sequencia Suporte 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 1 2 5 ?

AprioriAll 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 São candidatas as 3-sequências em que as 3 sequencias de 2 itens que a formam são frequentes Ex: 1 2 3 é candidata porque 1 2, 1 3 e 2 3 são frequentes 2-sequencia Suporte 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 3-sequência 1 2 3 1 2 4 1 3 4 1 3 5 1 4 5 2 3 4 3 4 5

AprioriAll Verifica o suporte mínimo passando pelo banco Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco

AprioriAll Agora sim! Vamos ao banco! 3-sequencia Suporte 1 2 3 2 1 2 4 1 3 4 3 1 3 5 1 4 5 1 2 3 4 3 4 5 Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5})

AprioriAll Verifica o suporte mínimo passando pelo banco Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco

AprioriAll Continuando com o exemplo para gerar 4-sequências frequentes: 3-sequencia Suporte 1 2 3 2 1 2 4 1 3 4 3 1 3 5 2 3 4 4-sequencia 1 2 3 4

AprioriAll Verifica o suporte mínimo passando pelo banco Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco

AprioriAll Contando com o banco: 4-sequencia Suporte 1 2 3 4 2 Base de Dados {1 5} {2} {3} {4} {1} {3} {4} {3 5} {1} {2} {3} {4} {1} {3} {5} {4} {5} 4-sequencia Suporte 1 2 3 4 2

AprioriAll- sequências máximas 1 2 3 4 Passos forward Remove as sequências que são sub-sequência de outra sequência C3 1 2 3 1 2 4 1 3 4 1 3 5 2 3 4 Máximas 1 2 3 4 L2 1 2 1 3 1 4 1 5 2 3 2 4 3 4 3 5 4 5

Remove as sequências que são sub-sequência de outra sequência AprioriAll L4 1 2 3 4 Passos forward Remove as sequências que são sub-sequência de outra sequência L3 1 2 3 1 2 4 1 3 4 1 3 5 2 3 4 Sub-sequências Máximas 1 2 3 4 L2 1 2 1 3 1 4 1 5 2 3 2 4 3 4 3 5 4 5

Remove as sequências que são sub-sequência de outra sequência AprioriAll L4 1 2 3 4 Passos forward Remove as sequências que são sub-sequência de outra sequência L3 1 3 5 L2 1 2 1 3 1 4 1 5 2 3 2 4 3 4 3 5 4 5 Sub-sequências Máximas 1 2 3 4 1 3 5

Remove as sequências que são sub sequência de outra sequência AprioriAll L4 1 2 3 4 Passos forward Remove as sequências que são sub sequência de outra sequência L3 1 3 5 L2 4 5 Máximas 1 2 3 4 1 3 5 4 5

Referências Agrawal, R.; Srikant, R., Mining sequential patterns. Proceedings of the Eleventh International Conference on Data Engineering, pp.3-14, 1995. Jiawei Han, Jian Pei, and Yiwen Yin. Mining Frequent Patterns without Candidate Generation , ACM-SIGMOD, 2000. Jian Pei, Jiawei Han e Runying Mao. CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets. ACM-SIGMOD DMKD workshop, 2000.