Técnicas de Mineração de Dados Sandra de Amo Faculdade de Computação Universidade Federal de Uberlândia
Técnicas de Mineração Suporte deste curso Curso Completo DM http://www.deamo.prof.ufu.br/CursoDM.html Curso Completo DM Notas deste Mini-curso Slides deste Mini-curso Bibliografia, …. 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 1 Introdução Técnicas de Regras de Associação Técnicas de Análise de Sequência 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 2 Sequências com Restrições Execução de um algoritmo Técnicas de Classificação 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 3 Técnicas de Clustering Técnicas de Otimização e Implementação Aspectos Teóricos e Generalização Aplicações 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 1 Introdução Técnicas de Regras de Associação Técnicas de Análise de Sequência 17/04/2017 JAI - SBC 2004
Mineração de Dados – Por que ? Grandes volumes de dados disponiveis Muitos dados mas pouca informação Decisões são tomadas utilizando intuição. Necessidade de transformar dados em informação util Ferramentas de Mineração podem descobrir padrões interessantes « escondidos » nos dados. 17/04/2017 JAI - SBC 2004
Consulta versus Mineração O que é Mineração de Dados Que produtos são comprados por clientes Classe A ? Cliente Produto Classe Social Tempo 1 Vinho A T1 2 Açúcar B T2 Queijo 3 Pão C T3 Leite T4 4 T5 17/04/2017 JAI - SBC 2004
Consulta e Resultado Select Clientes.Prod From Clientes Where Clientes. Faixa = ‘A’ Resposta : Vinho, Queijo 17/04/2017 JAI - SBC 2004
Consulta versus Mineração Existe ligação entre a classe social e produtos comprados numa mesma transação ? Cliente Produto Classe Social Tempo 1 Vinho A T1 2 Açúcar B T2 Queijo 3 Pão C T3 Leite T4 4 T5 17/04/2017 JAI - SBC 2004
Resultado da Mineração Padrões Classe A -> vinho, queijo Classe C -> pão, leite … 17/04/2017 JAI - SBC 2004
O que é Mineração ? Mineração de Dados Descoberta de Conhecimento (KDD) KDD = Knowledge Discovery in Databases 17/04/2017 JAI - SBC 2004
Etapas do Processo de KDD Limpeza dos Dados Integração dos Dados Seleção Transformação Mineração Avaliação ou Pós-Processamento Visualização dos Resultados 17/04/2017 JAI - SBC 2004
Tarefas de Mineração Tarefa ato de descobrir um certo tipo de padrão Regras de Associação Análise de Sequências Classificação Agrupamento Outliers 17/04/2017 JAI - SBC 2004
Como avaliar padrões ? O que significa um padrão ser interessante ? Facil de ser entendido Inesperado Potencialmente util Confirma uma hipotese feita pelo usuario Tipos de medidas Subjetivas : esperadas, inesperadas Acontece com um certo grau de segurança Objetivas : suporte, confiança 17/04/2017 JAI - SBC 2004
Sistemas de Mineração Intelligent Miner (IBM) DBMiner Enterprise Miner Clementine MineSet Genamics Expressions 17/04/2017 JAI - SBC 2004
Critérios de Avaliação de Sistemas Tipo de dados em que se aplica a mineração Tipo de conhecimento minerado Tipo de técnicas de mineração utilizadas Tipo de aplicação a que se destina 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 1 Introdução Técnicas de Regras de Associação Técnicas de Análise de Sequência 17/04/2017 JAI - SBC 2004
Regras de Associação Itens = {Pão, Leite, Açúcar, ... } Pão, Leite Manteiga Vinho Queijo ITEM, ITEM, ITEM ITEM 17/04/2017 JAI - SBC 2004
Preparação dos Dados ID Compras 1 2 3 4 Pão, , ,Açucar Manteiga, Açúcar Leite Manteiga Leite Manteiga Leite Suporte = 50% Leite, Manteiga Confiança = 66,6% 17/04/2017 JAI - SBC 2004
Medidas de Interesse Suporte de A, B , C D Confiança de A, B , C D número de clientes que compraram A,B,C,D Total de clientes número de clientes que compraram A,B,C,D número de clientes que compraram A,B,C 17/04/2017 JAI - SBC 2004
Tarefa de Mineração Dados : BD de transações, N, M Retorna : regras de associação r Sup(r) ≥ N Conf(r) ≥ M 17/04/2017 JAI - SBC 2004
Algoritmo: duas etapas Encontrar todos os I frequentes suporte(I) ≥ N Itemset = conjunto de itens Conf(A, B C) = suporte(A,B,C) ≥ M suporte(A,B) Itemsets = 17/04/2017 JAI - SBC 2004
Propriedade Importante Algoritmo Apriori Propriedade Importante 1 2 1 2 4 1 2 4 5 5 Se um itemset é frequente Todo subitemset é frequente !! 17/04/2017 JAI - SBC 2004
Apriori – Fase da Geração 1 3 5 1 3 5 2 3 5 2 3 5 2 4 6 3 5 6 F3 1 3 4 1 3 4 2 3 6 2 3 6 3 4 6 1 4 5 2 3 4 2 3 4 2 5 6 C4 1 3 4 5 1 3 4 5 2 3 4 5 2 3 4 5 2 3 5 6 2 3 5 6 2 3 4 6 2 3 4 6 17/04/2017 JAI - SBC 2004
Apriori – Fase da Poda F3 C4 C4 1 3 5 2 3 5 2 3 5 2 4 6 2 4 6 3 5 6 3 17/04/2017 JAI - SBC 2004
Apriori – Fase de Validação Suporte Mínimo: 50% Banco de Dados 1 3 5 7 8 1 7 8 2 3 4 5 7 8 1 9 Candidatos Contagem Suporte 2 3 5 6 2 3 5 6 2 3 4 5 6 2 3 4 6 2 3 4 6 2 3 4 6 2 3 4 6 F4 = 2 3 4 6 17/04/2017 JAI - SBC 2004
Algoritmo Apriori Entrada : BD de transações, N Saida : F1, F2, F3, … C1 = Itemsets de tamanho 1 F1 = Itemsets frequentes de C1 k : = 1 While Fk não for vazio Ck+1 := Junta(Fk, Fk) Ck+1 := Poda(Ck, Fk) Fk+1 : = Valida(BD,Ck+1, N) k : = k+1 17/04/2017 JAI - SBC 2004
Um Exemplo L1 = {1}, {2}, {3},{5} Id Compras 1 1,3,5 2 1,2,3,5,7 3 1,2,4,9 4 1,2,3,5,9 5 1,3,4,5,6,8 6 2,7,8 {1,3} C2 = {1,2} {1,5} {2,3} {3,5} {2,5} L2 = {1,2} {1,3} {1,5} {3,5} C3 = {1,2,3} {1,2,5} {1,3,5} L3 = {1,3,5} Suporte minimo = 50% 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 1 Introdução Técnicas de Regras de Associação Técnicas de Análise de Sequência 17/04/2017 JAI - SBC 2004
ITEMSET >> ITEMSET >> ITEMSET >> ... >>ITEMSET Sequências Itens = { TV, Vídeo , DVD, FitaDVD, ... } {TV ,Vídeo} >> DVD >> FitaDVD ITEMSET >> ITEMSET >> ITEMSET >> ... >>ITEMSET 17/04/2017 JAI - SBC 2004
Preparação dos Dados 1 2 3 4 5 , Rádio} , {Computador} , {Rádio, {Comp} , {Impressora} {TV {DVD} {TV} , {DVD} {TV} DVD} 17/04/2017 JAI - SBC 2004
número de clientes que compraram A,B,C,D em sequência Medidas de Interesse Suporte de < {A} , {B} , {C} , { D} > número de clientes que compraram A,B,C,D em sequência Total de clientes 17/04/2017 JAI - SBC 2004
{Rádio} >>{Comp} Preparação dos Dados 1 , Rádio} >> 2 {Computador} 3 >> {Rádio, 4 {Rádio} >>{Comp} 5 {Comp} >> {Impressora} {TV {DVD} < {TV} , {DVD} > {TV} DVD} Suporte = 40% 17/04/2017 JAI - SBC 2004
Tarefa de Mineração Dados : BD de sequências, N Retorna : Padrões Sequenciais s Sup(s) ≥ N 17/04/2017 JAI - SBC 2004
Propriedade Importante Frequente d c b h g f e l k j i m a d c b a h g f e l k j i d c b h g f e l k j i m Frequentes 17/04/2017 JAI - SBC 2004
Sequências « Ligáveis » b f e d i h g c b f e d i h g c b f e d i h g c b f e d i h g j j Sequência Resultante 17/04/2017 JAI - SBC 2004
GSP – Fase da Geração F3 C4 < {1,2}, {3} > < {1,3}, {5} > < {1,2}, {4} > < {2}, {3,4} > < {1}, {3,4} > < {2}, {3}, {5} > < {1,2}, {3,4} > C4 < {1,2}, {3} {5} > 17/04/2017 JAI - SBC 2004
GSP – Fase da Poda F3 C4 C’4 = < {1,2}, {3} > < {1,3}, {5} > F3 < {1,2}, {4} > < {2}, {3,4} > < {1}, {3,4} > < {2}, {3}, {5} > < {1,2}, {3,4} > < {1,2}, {3,4} > < {1,2}, {3,4} > < {1,2}, {3,4} > < {1,2}, {3,4} > C4 C’4 = < {1,2}, {3,4} > < {1,2}, {3} {5} > < {1,2}, {3} {5} > 17/04/2017 JAI - SBC 2004
GSP – Fase de Validação F4 = < {1,2}, {3,4} > 1 2 3 4 Suporte Mínimo: 50% Banco de Dados 1 2 3 4 Candidatas Contagem Suporte < {3,1,5,2}, {5}, {3,5,4} > < {3,1,5,2}, {5}, {3,5,4} > < {1,2}, {3,4} > < {2}, {3,4} > < {4,5}, {1,3,2}, {3,5,4,7} > < {4,5}, {1,3,2}, {3,5,4,7} > < {3}, {2,5} > F4 = < {1,2}, {3,4} > 17/04/2017 JAI - SBC 2004
Algoritmo GSP [1996] Entrada : BD de sequências, N Saida : F1, F2, F3, … C1 = Padrões Sequenciais de tamanho 1 F1 = Padrões Sequenciais frequentes de C1 k : = 1 While Fk não for vazio Ck+1 := Junta(Fk, Fk) Ck+1 := Poda(Ck, Fk) Fk+1 : = Valida(BD,Ck+1, N) k : = k+1 17/04/2017 JAI - SBC 2004
Outros algoritmos Apriori-All, Apriori-Some [Agrawal – Srikant 1995] SPADE [M. Zaki, 2001] PrefixSpan [Han+, 2001] 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 2 Sequências com Restrições Execução de um algoritmo Técnicas de Classificação 17/04/2017 JAI - SBC 2004
Otimizações : Fase de Validação Restrições Min-Max Taxinomias MAX Min < café, DVD, desinfetante > < alimento, Eletro-dom, limpeza > < açucar, TV, detergente > 17/04/2017 JAI - SBC 2004
Otimização: Fase de Geração Restrições no Formato dos Padrões [Garofalakis/Shim/Rastogi 1999] Padrões satisfazem expressão regular : TV a* DVD {TV} - - - - - {DVD} 17/04/2017 JAI - SBC 2004
Tarefa de Mineração Dados : BD de transações, N, Expressão R Retorna : Sequências s satisfaz R Sup(s) ≥ N 17/04/2017 JAI - SBC 2004
Uma idéia para resolver o problema Na Fase da Geração a partir de Lk e da expressão R gerar sequências de tamanho k+1 Potencialmente frequentes Verificam a expressão regular R 17/04/2017 JAI - SBC 2004
Fase da Poda L4 Frequentes Não é frequente E Não satisfaz R 2 4 5 7 L4 ?? 2 1 5 8 9 3 1 4 5 8 Frequentes Não é frequente OU E Não satisfaz R Satisfazem R 17/04/2017 JAI - SBC 2004
Fase da Poda Quais sequências devem ser podadas ? As que não têm chance de serem frequentes Como saber isto só verificando as sequências obtidas nas iterações precedentes ? 1 2 4 5 7 Satisfaz R E não está em F3 17/04/2017 JAI - SBC 2004
Geração e Poda Iteração k+1 Geração : Junta sequências de Lk Elimina aquelas que não satisfazem R Elimina aquelas que têm subsequência que satisfaz R não é frequente 17/04/2017 JAI - SBC 2004
Problema com esta idéia Dois tipos de poda Eliminando sequências que não satisfazem R Espaço de Busca Eliminando sequências testando suas subsequências Sequências Podadas 17/04/2017 JAI - SBC 2004
Como encontrar um meio-termo ? Considerando um “relaxamento” de R Sequências Válidas Sequências Legais com relação a um estado q Sequências Válidas com relação a um estado q a b c d q 17/04/2017 JAI - SBC 2004
Algoritmo SPIRIT Entrada : BD, N, autômato R Saída : sequências frequentes satisfazendo R Considera “relaxamento” R’ Minera sequências satisfazendo R’ Testa aquelas que satisfazem R 17/04/2017 JAI - SBC 2004
Relaxamentos Sequências Legais com relação a um estado q Sequências Válidas com relação a um estado q a b c d q 17/04/2017 JAI - SBC 2004
Algoritmo SPIRIT - Geração e Poda R’ : relaxamento de R Iteração k+1 Geração : “Junta” sequências de Lk Poda : Elimina aquelas que têm subsequência que satisfaz R’ não é frequente Junção : depende do tipo de relaxamento considerado. 17/04/2017 JAI - SBC 2004
Ex: Fase da Geração em SPIRIT(V) Valida com respeito ao estado Q 1 2 4 5 7 e frequente 1 2 4 5 7 Q Q1 Q1 Q2 Q 3 Q4 Q5 <2,4,5,7> deve ser valida com respeito a Q1 Deve existir « flecha » de Q parq Q1 17/04/2017 JAI - SBC 2004
Exemplo b F2(q0) = <a,c>, <a,e> a F2(q1) = <b,c> c F2(q2) = <d,c>, <d,e> e a F2(q3) = vazio q2 c d q0 : <a,b,c> q0 : <a,d,c>, <a,d,e>, q1 : <b,b,c> Fase da Poda q2 : <d,d,c>, <d,d,e> Nenhuma é podada 17/04/2017 JAI - SBC 2004
As 4 Variantes de SPIRIT SPIRIT(N) : Nenhuma restrição (GSP) SPIRIT(L) : Legais c.r. a algum estado de R SPIRIT(V) : Válidas c.r. a algum estado de R SPIRIT(R) : Satisfazem o autômato R 17/04/2017 JAI - SBC 2004
Resultados Experimentais Logs de páginas Web acessadas por usuários de um DCC URL começando em Home e terminando em PosGradDCC Algoritmo Tempo (seg) Total Cand. Iterações SPITIT(N) 1562,80 5896 13 SPIRIT(L) 32,77 1393 10 SPIRIT(V) 16 59 5 SPIRIT(R) 17,67 52 7 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 2 Sequências com Restrições Técnicas de Classificação Execução de um algoritmo 17/04/2017 JAI - SBC 2004
Classificação Nome Idade Renda Profissão Classe SE. Daniel ≤ 30 Média Estudante Sim João 31..50 Média-Alta Professor Carlos Engenheiro Maria Baixa Vendedora Não Paulo Porteiro Otavio > 60 Aposentado SE. Idade ≤ 30 E Renda é Média ENTÃO Compra-Produto-Eletrônico = SIM. 17/04/2017 JAI - SBC 2004
Etapas do Processo Classificador Amostras Classificadas REGRAS Banco de Testes Classificador REGRAS CONFIÁVEIS 17/04/2017 JAI - SBC 2004
Árvore de Decisão IDADE ≤ 30 31-50 >60 51-60 PROFISSÃO RENDA Não Sim B Med Eng Prof M Vend A M-A Sim Sim Não Sim Sim Não Sim Sim Se Idade ≤ 30 e Renda é Baixa então Não compra Eletrônico Se Idade = 31-50 e Prof é Médico então compra Eletrônico 17/04/2017 JAI - SBC 2004
Como criar uma Árvore de Decisão B C CLASSE a1 b1 c1 X b2 a2 c2 CASO 1 C1 17/04/2017 JAI - SBC 2004
Como criar uma Árvore de Decisão B C CLASSE a1 b1 c1 X b2 a2 Y c2 Atributo-Teste = CASO 2 O que mais reduz a entropia A a1 a2 A B C CLASSE a1 b1 c1 X b2 c2 Y A B C CLASSE a2 b1 c1 Y b2 c2 X A, B, C } LISTA-ATRIBUTOS = { 17/04/2017 JAI - SBC 2004
Como criar uma Árvore de Decisão Atributo-Teste = A B C CLASSE a1 b1 c1 X b2 c2 Y C O que mais reduz a entropia = C c2 c1 A B C CLASSE a1 b2 c2 Y A B C CLASSE a1 b1 c1 X b2 Y X LISTA-ATRIBUTOS = { B, C } 17/04/2017 JAI - SBC 2004
Qual é o Atributo-Teste ? Divide-se o nó segundo cada atributo. Para cada divisão calcula-se a entropia produzida caso fosse escolhido este atributo. Considera-se o atributo cuja divisão resulta numa maior redução da entropia. 17/04/2017 JAI - SBC 2004
Informação ganha na divisão Entrop(A) = -NC1 log2 NC1 - NC2 log2 NC2 Tot Tot Tot Tot Entrop(D) = -(NF1 * Entrop(F1) + NF2 * Entrop(F2)) Tot Tot Info(Divisão) = Entrop(A) – Entrop (D) Maior Info(Divisão) Atributo escolhido 17/04/2017 JAI - SBC 2004
Um Exemplo Aparência Temperatura Humidade Vento Classe Sol Quente Alta Não Ruim Sim Encoberto Bom Chuvoso Agradavel Frio Normal 17/04/2017 JAI - SBC 2004
1a divisão possível : Aparência Chuva Sol Enc Bom Bom Bom Bom Bom Bom Bom Bom Bom Ruim Bom Ruim Ruim Ruim Entrop(D) = 5/14 * Entrop(F1) + 4/14*Entrop(F2) + 5/14*Entrop(F3) = 0.693 Entrop(F1) = -3/5*log2(3/5) - 2/5*log2 (2/5) = 0.971 Entrop(F2) = - 4/4*log2 (4/4) = 0 Entrop(F3) = - 3/5*log2(3/5) - 2/5*log2(2/5) = 0.971 17/04/2017 JAI - SBC 2004
Redução da Entropia Entrop(A) = - (9/14 * log2 (9/14) + 5/14* log2(5/14)) = = 0.940 INFO(APARÊNCIA) = Entrop(A) – Entrop(D) = = 0.940 - 0.693 = 0.247 17/04/2017 JAI - SBC 2004
Comparando as 4 possibilidades Info(Aparência) = 0.247 Info(Temperatura) = 0.029 Info(Humidade) = 0.152 Info(Vento) = 0.020 17/04/2017 JAI - SBC 2004
Redes Neurais Conjunto de unidades Conceito de Neurônio Artificial I1 2 input output w32 I3 3 Conceito de Neurônio Artificial Camada de Input Camada Intermediaria Camada de Output 17/04/2017 JAI - SBC 2004
Rede Neural e Classificação w0j x0 + θj w1j INPUT Ij na unidade j ∑ x1 tendência w2j x2 Pesos Média ponderada dos outputs recebidos Função de Ativação Outputs da Camada precedente Output Oj 17/04/2017 JAI - SBC 2004
Backpropagation – Fase de IDA δ1 1 ? I1 C1 I2 δ2 0 ? C2 I3 δ3 C3 0 ? Classe C1 17/04/2017 JAI - SBC 2004
Backpropagation – Fase de Volta w12 w12 w12 w12 w22 w22 I2 w22 w22 C2 w32 w32 w32 w32 I3 C3 Ajusta pesos Ajusta pesos 17/04/2017 JAI - SBC 2004
Condições de Parada Epoca = tempo necessário para que todas as amostras sejam analisadas. Processo se repete até que: Os reajustes dos pesos são “muito pequenos”. Só uma “pequena” porcentagem de amostras foram mal classificadas pela rede. Um número “máximo” de épocas foi atingido. 17/04/2017 JAI - SBC 2004
Backpropagation Objetivo: obter uma rede neural treinada Centenas de milhares de épocas são necessárias para a convergência dos pesos. Teoricamente, convergência não é garantida. Na prática, os pesos convergem depois de um grande número de épocas. 17/04/2017 JAI - SBC 2004
Ida : Como são calculados os outputs w1i Oi w2i I2 i w3i I3 Oi = F( w1i*I1 + w2i*I2 + w3i*I3 + θi ) F(x) = 1/(1+e-x) 17/04/2017 JAI - SBC 2004
Volta: Cálculo dos Erros Erro em unidade da última camada i δi Ti (0-1) ? Ei = δi(1- δi)(Ti – δi) Erro em unidade da camada intermediária wi1 1 i wi2 E’i = δi(1- δi)(E1*wi1+E2*wi2+E3wi3) 2 wi3 3 17/04/2017 JAI - SBC 2004
Reajustes dos pesos e tendências Novo peso wij wij i j Novo-wij = Velho-wij + λ EjOi Nova Tendência θj Novo-θj = Velho- θj + λ Ej λ = Taxa de Aprendizado λ(t) = 1/t t = iteração atual Evita que o processo fique parado num “mínimo local” 17/04/2017 JAI - SBC 2004
Exemplo 1 1 w14 Amostra classificada na classe C = 1 w24 4 w46 6 2 w34 w56 5 1 3 w14 W14 W15 W24 W25 W34 W35 W46 W56 θ4 θ5 θ6 0.2 -0.3 0.4 0.1 -0.5 -0.2 -0.4 17/04/2017 JAI - SBC 2004
Exemplo Ida Volta Unidade Input Output 4 0.2 + 0 – 0.5 – 0.4 = - 0.7 -0.3 + 0 + 0.2 + 0.2 = 0.1 1/1+e-0.1 = 0.525 6 (-0.3)(0.332) – (0.2)(0.525) + 0.1 = - 0.105 1/1+e0.105 = 0.474 Unidade Erro 6 (0.474)(1 - 0.474)(1 - 0.474) = 0.1311 5 (0.525)(1 - 0.525)( 0.1311)(-0.2) = -0.0065 4 (0.332)(1 - 0.332)( 0.1311)(-0.3) = -0.0087 17/04/2017 JAI - SBC 2004
Ex: Ajustes dos Pesos e Tendências Antigo Valor Reajustado W46 = -0.3 -0.3 + (0.90)(1.3311)(0.332) = -0.261 w56 = -0.2 -0.2 + (0.90)(1.3311)(0.525) = -1.138 w14 = 0.2 0.2 + (0.90)(-0.0087)(1) = 0.192 w15 = -0.3 -0.3 + (0.90)(-0.0065)(1) = -0.306 w24 = 0.4 0.4 + (0.90)(-0.0087)(0) = 0.4 w25 = 0.1 0.1 + (0.90)(-0.0065)(0) = 0.1 w34 = -0.5 -0.5 + (0.90)(-0.0087)(1) = -0.508 w35 = 0.2 0.2 + (0.90)(-0.0065)(1) = 0.194 θ6 = 0.1 0.1 + (0.90)(1.1311) = 0.218 θ5 = 0.2 0.2 + (0.90)(-0.0065) = 0.194 θ4 = -0.4 -0.4 + (0.90)(-0.0087) = -0.408 17/04/2017 JAI - SBC 2004
Vantagens e Desvantagens Fase de treinamento demorada Muitos parâmetros, determinados empiricamente Fraca interpretabilidade Alta tolerância a ruídos Resultados Confiáveis 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 2 Sequências com Restrições Técnicas de Classificação Execução de um algoritmo 17/04/2017 JAI - SBC 2004
Intelligent Miner – Janela Principal 17/04/2017 JAI - SBC 2004
Mineração 17/04/2017 JAI - SBC 2004
Resultados da Mineração 17/04/2017 JAI - SBC 2004
Estatística 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 3 Técnicas de Clustering Técnicas de Otimização e Implementação Aspectos Teóricos e Generalização Aplicações 17/04/2017 JAI - SBC 2004
Agrupamento -Análise de Clusters Doença X a1 a F 1 b M c d e a1 a2 a3 Doença Y a7 a2 . a9 a10 a8 a5 a4 a6 a11 Doença Z Nome Sexo Sintomas Conceito = Doença Número de Clusters = 3 17/04/2017 JAI - SBC 2004
Clusterização versus Classificação Aprendizado Supervisionado Amostras de treinamento são classificadas Número de Classes é conhecido Aprendizado por Exemplo Clusterização Aprendizado Não Supervisionado Aprendizado por Observação 17/04/2017 JAI - SBC 2004
Dados de Treinamento Matriz de dados padronizados Matriz de dissimilaridade x11 x12 x13 ... x1n x21 x22 x23 x2n x31 x32 x33 x3n xp1 xp2 xp3 xpn ... d(x1,x2) d(x1,x3) d(x2,x 3) d(x1,xp) d(x2,x p) Distância Euclidiana D(x,y) = (x1-y1)2 + (x2-y2)2 + .... + (xp – yp)2 Outras distâncias : Manhattan, Minkowski, Ponderada 17/04/2017 JAI - SBC 2004
Métodos de Clusterização Particionamento (k-means, k-medóides,..) Hierárquicos Aglomerativos (BIRCH, CURE, CHAMELEON, ROCK...) Hierárquicos Divisórios (DIANA) Baseados em Densidade (DBSCAN,OPTICS, DENCLUE) 17/04/2017 JAI - SBC 2004
Particionamento BD com n amostras K = número de clusters desejado ( parâmetro ) K ≤ n 17/04/2017 JAI - SBC 2004
Hierárquicos Aglomerativos BD com n amostras K = número de clusters desejado ( parâmetro ) K ≤ n 17/04/2017 JAI - SBC 2004
K-means + + + 1ª Iteração 2ª Iteração 17/04/2017 JAI - SBC 2004
Clustering Using REpresentatives (CURE) No início, cada amostra é um cluster. número de clusters = número de amostras Calcula-se distância entre os clusters. Clusters próximos são reunidos num único cluster. Repete-se o processo de cálculo da distância entre clusters e reunião de clusters próximos. O processo termina quando se atinge o número pré-fixado de clusters. 17/04/2017 JAI - SBC 2004
Distância entre Clusters CURE 17/04/2017 JAI - SBC 2004
Calculo da Distância entre Clusters CURE + + Parâmetros de Entrada Coeficiente de Retração Numero de elementos escolhidos em cada cluster 17/04/2017 JAI - SBC 2004
Parâmetros de Ajuste Representantes : capturam o formato do cluster Retração em direção do centro de gravidade: Diminuir a influência de ruidos Coeficientes de retração : Valores pequenos : favorecem clusters de formato não convexo, menos compacto Valores grandes : aproximam os representantes do centro do cluster, favorecem clusters convexos, de forma esférica. 17/04/2017 JAI - SBC 2004
Vantagens e Desvantagens CURE detecta clusters de formato arbitrário K-means detecta clusters de formato esférico CURE é robusto quanto a outliers Desvantagem de CURE : complexidade O(n2), n= tamanho do banco de dados 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 3 Técnicas de Clustering Técnicas de Otimização e Implementação Aspectos Teóricos e Generalização Aplicações 17/04/2017 JAI - SBC 2004
Otimização (Apriori-GSP) Gerenciamento de Buffer Otimização 1 : reduzir n° de testes na fase de geração n° de testes na fase de poda n° de testes na fase de validação Otimização 2 : reduzir tamanho do BD Otimização 3 : reduzir n° de varridas no BD Otimização 4 : reduzir n° de candidatos gerados 17/04/2017 JAI - SBC 2004
Gerenciamento de Buffer Se Fk e Ck+1 cabem em memoria principal: geração e poda realizadas em memoria principal Se Fk cabe e Ck+1 não cabe: Gera-se o numero maximo de candidatos que cabem em memoria principal Poda-se estes candidatos Se sobra espaço, gera-se mais, poda-se, … Contagem do suporte Candidatos frequentes são armazenados em disco. 17/04/2017 JAI - SBC 2004
Gerenciamento do Buffer Se Lk e Ck+1 não cabem na memoria principal Ordena-se e estoca-se Lk em disco Carrega-se um bloco de Lk em memoria principal, onde os k-2 primeiros elementos são idênticos. Junta e calcula suporte Frequentes são armazenados em disco 17/04/2017 JAI - SBC 2004
Exemplo Capacidade da Memoria : 3 itemsets de tamanho 3 + 1 pagina para contagem do suporte L3 1 2 3 1 2 4 1 2 5 1 2 6 1 2 7 1 3 4 1 3 5 1 3 6 Primeiro bloco : <1,2,3>, <1,2,4>, <1,2,5> Gerados : <1,2,3,4>, <1,2,3,5>, <1,2,4,5> Suporte é avaliado na pagina extra Segundo bloco : <1,2,3>, <1,2,6>, <1,2,7> 17/04/2017 JAI - SBC 2004
Otimização 1 - Árvore Hash 2 3 Tabelas Hash 1 2 3 1 2 3 1 2 3 1 2 3 Folhas : armazena padrões 17/04/2017 JAI - SBC 2004
Como armazenar padrões na Árvore h(i1) = 2 h(i1) = 1 Pão, Leite Pão, Açucar Pão, Manteiga Leite, Açúcar Leite, Manteiga Açúcar, Manteiga Pão, Leite Pão, Açucar Pão, Manteiga Açúcar, Manteiga Leite, Açúcar Leite, Manteiga h(Pão) = h(Açucar) = 1 N = Número maximo de elementos na folha = 3 h(Manteiga) = h(Leite) = 2 17/04/2017 JAI - SBC 2004
Como armazenar padrões na Árvore h(i1) = 2 h(i1) = 1 h(i2) = 2 h(i2) = 1 Leite, Açúcar Leite, Manteiga Pão, Açúcar Pão, Leite Pão, Manteiga Açúcar, Manteiga 17/04/2017 JAI - SBC 2004
Geração de candidatos x 2 2 2 2 y 1 2 1 2 1 2 < 3, 6, 8 > < 6, 8, 9 > x < 3, 6, 8, 9 > 1 2 2 1 < 3, 6, 8 > < 1, 2, 4 > < 6, 8, 10 > < 2, 4, 6 > x <3, 6, 8, 10 > <1, 2, 4, 6> < 1, 2, 5 > < 2, 4, 7 > < 1, 4, 8 > < 3, 6, 8 > < 1, 2, 4 > < 6, 8, 9 > < 6, 8, 10 > < 2, 4, 6 > 17/04/2017 JAI - SBC 2004
Poda dos Candidatos Candidato: Sub-itemset: h(n) = 1 se n é ímpar { 1, 2, 5, 6 } Candidato: 1 2 { 1, 2, 5 } Sub-itemset: { 1, 2, 6 } { 1, 2, 5 } { 1, 2, 6 } { 1, 2, 6 } { 1, 2, 5 } { 1, 2, 5 } { 1, 2, 6 } 1 2 1 2 h(n) = 1 se n é ímpar 1 2 2 1 h(n) = 2 se n é par { 1, 2, 5 } { 2, 4, 7 } { 1, 2, 5 } { 2, 4, 7 } { 1, 4, 8 } { 3, 6, 8 } { 1, 2, 4 } { 6, 8, 9 } { 6, 8, 10 } { 2, 4, 6 } Folhas : máximo de 3 elementos 17/04/2017 JAI - SBC 2004
Validação dos Candidatos Transação do banco 1 2 { 1, 2, 5, 6 } { 1, 2, 5, 6 } { 1, 2, 5, 6 } { 1, 2, 5, 6 } { 1, 2, 5, 6 } { 1, 2, 5, 6 } { 1, 2, 5, 6 } { 1, 2, 5, 6 } { 1, 2, 5, 6 } { 1, 2, 5, 6 } 1 2 1 2 1 2 2 1 { 1, 5, 9 } - 0 { 2, 5, 6 } - 0 { 2, 5, 6 } - 1 { 2, 5, 6 } - 1 { 1, 2, 5 } - 1 { 2, 4, 7 } - 0 { 1, 2, 5 } - 1 { 2, 4, 7 } - 0 { 1, 2, 5 } - 0 { 2, 4, 7 } - 0 { 1, 4, 8 } - 0 { 3, 6, 8 } - 0 { 1, 2, 6 } - 1 { 1, 4, 8 } - 0 { 3, 6, 8 } - 0 { 1, 2, 6 } - 1 { 1, 4, 8 } - 0 { 3, 6, 8 } - 0 { 1, 2, 6 } - 0 { 6, 8, 9 } - 0 { 6, 8, 10 } - 0 { 2, 4, 6 } - 0 17/04/2017 JAI - SBC 2004
2 – Redução do tamanho do BD Iteração k t : transação do BD não suporta nenhum padrão de tamanho k Iteração k+1 t : não suporta nenhum padrão de tamanho k +1 t pode ser eliminada do BD na iteração k 17/04/2017 JAI - SBC 2004
3 - Redução de « varridas » no BD Método convencional : BD é varrido N vezes N = número de iterações. Método de Particionamento do BD [Savarese+ 1995] BD é varrido 2 vezes 17/04/2017 JAI - SBC 2004
Método do Particionamento Frequente local Método do Particionamento Apriori/GSP em memória principal Encontra padrões frequentes locais Frequente Global Frequente em ao menos um Local Testa os padrões frequentes locais DB 17/04/2017 JAI - SBC 2004
4: Redução de candidatos gerados Restrições de expressão regular (Garofalakis+ 1999) Restrições de gramática livre do contexto (Antunes-Oliveira 2002) < pedido1, pedido2, fatura1, fatura2 > Itemsets: restrição de item (Agrawal-Srikant 1997) (Pão AND Leite) OR (Açúcar AND Café AND ¬ Sal) 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 3 Técnicas de Clustering Técnicas de Otimização e Implementação Aspectos Teóricos e Generalização Aplicações 17/04/2017 JAI - SBC 2004
Técnica Crescimento-Poda-Validação Quadro Geral L = Linguagem de Especificação de Padrões Ex : < a, b, c, d > Q = Condição de Seleção Quais padrões de L são interessantes ? Tarefa de Mineração S = { p Є L | p satisfaz Q } 17/04/2017 JAI - SBC 2004
Como percorrer o espaço de busca ? Do mais geral ao mais específico Relação de especialização entre os padrões O que caracteriza um padrão ser mais geral do que outro ? Ex: < {b}, {e} > é mais geral que < {a,b}, {c,d}, {a,e} > Ordem Parcial em L : p ≤ q se p é mais geral que q Reflexiva : p ≤ p Antissimétrica: Se p ≤ q e q ≤ p então p = q Transitiva : Se p ≤ q e q ≤ r então p ≤ r 17/04/2017 JAI - SBC 2004
Propriedade de Antimonotonia ≤ é antimonotônica com relação à condição Q Se p ≤ q e q satisfaz Q então p satisfaz Q Se um padrão q é interessante então todos os padrões mais gerais p também são interessantes. Exemplo: Q : p satisfaz Q se suporte(p) ≥ α ( 0 ≤ α ≤ 1 dado ) p ≤ q e suporte(q) ≥ α então suporte(p) ≥ α q p 17/04/2017 JAI - SBC 2004
Algoritmo Geral Mais específicos Mais gerais 17/04/2017 JAI - SBC 2004
Algoritmo Level Search C1:= {q Є L | não existe p Є L, p < q } i:= 1 While Ci ≠ vazio Fi = {p Є Ci | p satisfaz Q} Ci+1 := {p Є L | para todo q < p tem-se que q Є Uj ≤ i Fj} – Uj ≤ i Cj i:= i+1 Retorna Uj ≤ i Fj 17/04/2017 JAI - SBC 2004
Exemplo 1: Regras de Associação Linguagem L : alfabeto = conjunto de itens I L = conjunto de itemsets sobre I Relação de Especialização : I, J Є L I ≤ J se I está contido em J C1 = itemsets mais gerais possíveis = itemsets unitários 17/04/2017 JAI - SBC 2004
Exemplo 2: Sequências Linguagem L : alfabeto = conjunto de itens I L = conjunto de sequências de itemsets de I Relação de Especialização : I, J Є L I ≤ J se I está contida em J C1 = sequências mais gerais possíveis = sequências unitárias < {a} > 17/04/2017 JAI - SBC 2004
Novo : Episódios [Mannila+ 1997] Coleção de eventos que ocorrem durante um intervalo de tempo Episódio = grafo Vértices = eventos Arestas especificam a ordem temporal de precedência dos eventos Banco de dados : longa sequência de eventos 17/04/2017 JAI - SBC 2004
Novo : Episódios [Mannila+ 1997] Tarefa de Mineração Dados : uma longa sequência de eventos S, N > 0, 0 ≤ M ≤ 1 Encontrar todos os episodios ocorrendo em S, num intervalo de largura N e com frequência superior a M. 17/04/2017 JAI - SBC 2004
Episódios E D F B B E A A C C E E A A B B D C C E A E A C B 17/04/2017 JAI - SBC 2004
Episódios Linguagem L : alfabeto = conjunto de eventos E L = conjunto dos grafos etiquetados em E Relação de Especialização : G, G’ Є L G ≤ G’ se G é isomorfo a um subgrafo de G’ C1 = Grafos mais gerais possíveis = grafos unitarios 17/04/2017 JAI - SBC 2004
Plano do Curso Aula 3 Técnicas de Clustering Técnicas de Otimização e Implementação Aspectos Teóricos e Generalização Aplicações 17/04/2017 JAI - SBC 2004
Aplicações Marketing Medicina Telecomunicações Agropecuária Meteorologia Web Mining Bioinformática 17/04/2017 JAI - SBC 2004
Mineração na Web (Web Mining) Mineração do Uso da Web Descobrir padrões de comportamento de navegação dos usuários da Internet. melhorar arquitetura dos site distribuição de material publicitário no site Mineração do Conteudo da Web 17/04/2017 JAI - SBC 2004
Mineração do Uso da Web Dados = Arquivo de Logs u1 (s1, d1) t1 IdUser (IP) End. Origem End. Destino Tempo < (s1,d1), (s2,d2), (s3,d3), ... > 17/04/2017 JAI - SBC 2004
Sequência de Páginas Visitadas 1 12 11 B O 2 14 6 13 15 5 C E U V 3 4 7 D G 8 10 9 H W < A B C D C B E G H G W A O U O V > …. A = (null, A) B = (A, B) C = (B, C) 17/04/2017 JAI - SBC 2004
Transformação das Sequências Arquivo de Logs Sequências Maximais Para Frente < A B C D > < A B E G H > < A B E G W > < A O U > < A O V > Arquivo de Logs Sequências Maximais para Frente 17/04/2017 JAI - SBC 2004
Padrões Sequenciais Sequências de referência : <a1, a2, …, an> Sequência de referência suportada por sequência maximal para frente < A B C E F D > 17/04/2017 JAI - SBC 2004
Esquema Geral do Processo Transformação do Bando de Dados de logs num arquivo de sequências maximais para frente. Mineração das sequências de referência frequentes. Seleção das maximais 17/04/2017 JAI - SBC 2004
Algoritmo MF para Transformação Mov String Y SeqMax A 1 12 11 1 AB - B O 2 14 6 13 15 2 ABC - 5 C E U V 3 ABCD - 3 4 7 4 ABC ABCD D G 8 5 AB - 10 9 6 ABE - H W 7 ABEG - ABEGH - 8 9 ABEG ABEGH 17/04/2017 JAI - SBC 2004
Topicos Importantes de Estudo Mineração Interativa Mineração Incremental Linguagens de Mineração Ferramentas de Visualização Gerenciamento de ruidos e dados incompletos Eficiência e Escalabilidade dos algoritmos de mineração. 17/04/2017 JAI - SBC 2004
Exercicio 1 {1,3,5,7,8} {3,4,5,7} {2,3,5,6} {2,4,5,8,9} {2,3,5,11} {1,2,3,7,9} C1 = {1}, {2}, {3}, {4} ,{5}, {6 },{7}, {8}, {9},{11} F1 = {2}, {3}, {5}, {7} C2 = {2 3}, {2 5}, {2 7}, {3 5}, {3 7}, {5 7} F2 = {2,3}, {2 5}, {3 5}, {3 7} C3 = {2,3,5}, {3,5,7} Apos a poda : C3 = {2,3,5} Suporte = 50% F3 = vazio 17/04/2017 JAI - SBC 2004
Exercicio 2 F2(q0) = <0,1> <0,2> F2(q1) = <1,2> 1 F2(q1) = <1,2> q0 q1 q2 2 5 F2(q2) = <5,1> <5,3> 1 3 F2(q3) = <3,5> q3 Fase da Geração Fase da Poda Q0: <0,1,2> Podadas : <1,5,2> Q1: <1,5,2>, <1,5,3> <2,3,5> <1,5,3> <2,3,5> Q2: <5,3,5> Q3: <1,1,2> <3,5,1> <3,5,3> <1,1,2> <2,3,5> 17/04/2017 JAI - SBC 2004
FIM Suporte deste curso Questões ? Curso Completo DM http://www.deamo.prof.ufu.br/CursoDM.html Curso Completo DM Notas deste Mini-curso Slides deste Mini-curso Bibliografia, …. Questões ? 17/04/2017 JAI - SBC 2004