descoberta de padrões usando conhecimento prévio

28
Descoberta de Padrões usando Conhecimento Prévio

Upload: internet

Post on 17-Apr-2015

103 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Descoberta de Padrões usando Conhecimento Prévio

Descoberta de Padrões usando

Conhecimento Prévio

Page 2: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 2

Regras de Classificação

Regras da forma:

Se A então ci,

onde A é uma conjunção de pares atributo-valor, i.e., (A1, va) (A2, vb) ... (An, vz), e ci é uma classe.

note que A e ci são conjunto disjuntos.

Page 3: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 3

Regras de Classificação

Servem para:

descrição intensional de um conjunto: descrição através de uma propriedade.

previsão da classe de um novo exemplo, ainda desconhecido.

Page 4: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 4

Algoritmo de busca de Regras de Classificação

1. Gerar todas as regras possíveis que contenham um par (A,v) e armazenar no conjunto H.

2. Para cada h H :sese (medidas de relevância maiores que valores mínimos

determinados)h é retirado de H e armazenado como regra descobertasenãosenão

adicionar um par (A,v) à regra h e armazená-la em H

Page 5: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 5

Tamanho do Espaço de Busca

tuplas com i atributos. cada atributo possui k valores possíveis número de possibilidades de tuplas: T = k i. número de possibilidades de regras:

conjunto potência de T = 2 elementoskiki

Page 6: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 6

Espaço de Busca

ID COR ODOR ESPORO1 marrom amêndoa laranja2 branca peixe preto3 verde anis amarelo4 verde amêndoa amarelo5 branca anis preto

Page 7: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 7

Medidas de Relevância

Completude: se a regra classifica todas as instâncias da classe.

Consistência: se a regra não classifica uma instância de outra classe

Page 8: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 8

Medidas de Relevância

A C SUPORTE NA CLASSE: a probabilidade de uma regra

numa base de dados dividida pelo número de tuplas que pertencem à classe: P(A C) / P (C)

CONFIANÇA: a probabilidade condicional de uma regra, i.e., probabilidade de ocorrer o conseqüente de uma regra dado que ocorre o antecedente: P(C|A) = P(A C) / P(A)

Valores altos de suporte e confiança: regras fortes

Page 9: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 9

Suporte e Confiança

Algoritmo de busca: procura regras maximizando sua confiança considera regras com valor de suporte acima de um valor mínimo

O acréscimo de um par atributo-valor diminui o valor de suporte, pois as tuplas que satisfazem a regra pertencem a intersecção entre os conjuntos de cada par atributo-valor individualmente.

Page 10: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 10

Suporte e Confiança

Se odor = peixe -> comestível

Se odor = peixe -> comestível

Se cor = marrom -> comestível

Se cor = marrom -> comestível

Se odor = peixe

cor = marrom -> comestível

Se odor = peixe

cor = marrom -> comestível

ID ODOR CLASSE ID COR CLASSE ID ODOR COR CLASSE1 amêndoa venenoso 1 marrom venenoso 9 peixe marrom comestível2 peixe venenoso 2 amarela venenoso 10 peixe marrom comestível3 anis comestível 3 branca comestível cobertura = 24 anis comestível 4 amarela comestível suporte = 2/65 anis venenoso 5 marrom venenoso confiança = 16 peixe comestível 6 preta comestível7 amêndoa comestível 7 preta comestível8 anis venenoso 8 marrom venenoso9 peixe comestível 9 marrom comestível10 peixe comestível 10 marrom comestível

cobertura = 3 cobertura = 2suporte = 3/6 suporte = 2/6confiança = 3/4 confiança = 2/5

Page 11: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 11

Cálculo do Suporte e Confiança

Regras são convertidas em expressões SQL:1) SELECT classe, COUNT(*) FROM tabela_dadosWHERE odor = peixe GROUP BY classe;

2) SELECT classe, COUNT(*) FROM tabela_dadosWHERE odor = peixe AND cor = marrom GROUP BY classe;

CLASSE COUNTcomestível 3venenoso 1

CLASSE COUNTcomestível 3venenoso 1

CLASSE COUNTcomestível 2CLASSE COUNTcomestível 2

Page 12: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 12

Padrões em múltiplos níveis conceituais

Padrões podem ser descobertos:1) no nível conceitual representado na base de dados2) num nível conceitual mais elevado, utilizando informação de

hierarquias de conceitos ==> descoberta de padrões de alto nível

Observações:em geral, não existem regularidades fortes em conceitos com baixo

nível de abstração.regularidades em conceitos de nível mais alto de abstração, podem

ser conhecidas ou de senso comum.conceitos em níveis intermediários podem apresentar maior grau de

interesse.

Page 13: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 13

Múltiplos Níveis Conceituais

ID ODOR COR CLASSE1 amêndoa agradável marrom escura venenoso2 peixe ruim amarela clara venenoso3 anis agradável branca clara comestível4 anis agradável amarela clara comestível5 anis agradável marrom escura venenoso6 peixe ruim preta escura comestível7 amêndoa agradável preta escura comestível8 anis agradável marrom escura venenoso9 peixe ruim marrom escura comestível10 peixe ruim marrom escura comestível

ID ODOR COR CLASSE6 ruim escura comestível9 ruim escura comestível10 ruim escura comestível

Page 14: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 14

Hierarquia sobre valores de atributos

10000 ~ 7500010000 ~ 75000

10000 ~ 4000010000 ~ 40000 40000 ~ 7500040000 ~ 75000

10000 ~ 2500010000 ~ 25000 25000 ~ 4000025000 ~ 40000 40000 ~ 5500040000 ~ 55000 55000 ~ 7500055000 ~ 75000

Estado Renda

RJ 32100SP 25500MG 25403ES 70000PR 12500RS 50000

Page 15: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 15

Hierarquia de Conceitos - Fundamentos

um conjunto finito parcialmente ordenado de conceitos - define relações de generalização e especialização

pode ser representada como uma árvore os valores dos atributos estão no nível folha - menor

nível de especialização pode ser fornecida por um especialista de domínio ou ser

construída a partir de uma base de dados pode ser reconstruída/refinada dinamicamente -

dependendo do padrão a ser descoberto

Page 16: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 16

algoritmos

• ParDRI (Merrwyn, UMA, USA)• Indução orientada à atributo (Han, SFU, CA)

Page 17: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 17

Busca por Padrões em múltiplos níveis

Estratégias de mineração

1) especialização progressiva - top down

2) generalização progressiva - bottom up

Page 18: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 18

Descoberta de regras em múltiplos níveis

• Processo de geração de hipóteses (regras candidatas) que devem ser refinadas

• Na descoberta em múltiplos níveis o refinamento de hipóteses pode ser (a) adicionar mais um atributo a regra ou (b) especializar um valor de um atributo

• Busca por regras mais simples - tamanho de descrição mínimo

Page 19: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 19

Refinamento de regras em múltiplos níveis

Se <A1,v1> <A2, v2> ... <Ai, vi> então cn

Se <A1,v1> <A2, v2> ... <Ai, v’i> então cn

Se <A1,v1> ...<Ai, vi> <Ai+1, vi+1> então cn

especializar adicionar par Av

Page 20: Descoberta de Padrões usando Conhecimento Prévio

Algoritmo implementado

utiliza SGBD PostgresSQL onde são armazenadas as hierarquias de conceitos e a base de dados para a execução do algoritmo, o banco de dados deve ser representado numa única tabela redução do espaço de hipóteses:

- co-ocorrência entre as tuplas - pares (A,v) que ocorrem nas tuplas.- medidas de relevância.- uma regra descoberta não irá compor uma outra regra.

Page 21: Descoberta de Padrões usando Conhecimento Prévio

Modelo funcional

Page 22: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 22

Heurísticas da busca e critérios de poda

• adotar um valor de mais baixo nível para um determinado atributo sempre que o número de tuplas for maior que 90% do número de tuplas com o valor de mais alto nível

• regras descobertas não são mais refinadas

Page 23: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 23

Teste de relevância

SELECT classe, COUNT(*) FROM tabela_dadosWHERE odor = peixe AND ( cor = marrom OR cor = preta)

GROUP BY classe;

Page 24: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 24

Teste de relevância: otimização

São criados dois tipos de cache: para cada atributo são criadas tabelas contendo todas as tuplas

cujos valores correspondem às folhas da hierarquia descendentes dos conceitos de mais alto nível

para cada regra é criada uma tabela que contêm todas as tuplas que satisfazem a regra

Page 25: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 25

Avaliação

• Banco de dados sobre cogumelos obtido do repositório de BD de aprendizado de máquina da UCI, EUA

• contém 8416 tuplas, 23 atributos, 2 classes (cogumelos comestíveis e venenosos)

• foram descobertas 150 regras que foram comparadas às regras descobertas pelo sistema ParDRI.

Page 26: Descoberta de Padrões usando Conhecimento Prévio

JUN2003 Marco Di Beneditto 26

Pesquisa

implementação original em alguns aspectos dos algoritmos estudos: abordagem top-down sem generalização de tabelas armazenamento das hierarquias em tabelas relacionais múltiplas hierarquias evita regras repetidas

métodos de seleção de atributos - filtro para redução inicial do espaço de busca (por exemplo, entropia da informação)

emprego de outras medidas de relevância [Hilderman & Hamilton][Kodratoff]

construção de uma BD de teste benchmark - geração de dados a partir de um simulador

Page 27: Descoberta de Padrões usando Conhecimento Prévio

descobertas anteriores

qualquerqualquer

fracofraco forteforte

ruimruim regularregular muito bommuito bom excelenteexcelente

0.0 ~ 4.50.0 ~ 4.5 4.5 ~ 6.54.5 ~ 6.5

R1R1 R2R2

R1R1 = {4.5 ~ 6.5} = {4.5 ~ 6.5} pós-graduação pós-graduação ruim ruim

R2R2 = {4.5 ~ 6.5} = {4.5 ~ 6.5} graduação graduação regular regular

R1R1 = {4.5 ~ 6.5} = {4.5 ~ 6.5} pós-graduação pós-graduação ruim ruim

R2R2 = {4.5 ~ 6.5} = {4.5 ~ 6.5} graduação graduação regular regular

uso de hierarquias mais “complexas” sugerem uma forma de uso de regras de classificação descobertas por outros processos

Page 28: Descoberta de Padrões usando Conhecimento Prévio

FIMFIM