algoritmos para descoberta de conhecimento em bases de dados prof. luis otavio alvares ii/ufrgs

Post on 17-Apr-2015

113 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ALGORITMOS para Descoberta de Conhecimento em Bases de Dados

prof. Luis Otavio Alvares

II/UFRGS

Sumário

Regras de associação: Apriori Classificação: ID3, C4.5 Formação de agrupamentos: k-médias Detecção de desvios

Regras de Associação

Regras de associação

Regras de associação ou regras associativas têm a forma

{X1, X2, ..., Xn} Y

significando que se encontrarmos todos os itens X1, X2, ..., Xn

numa transação, então temos uma boa chance de encontrar também Y.

dada a regra de associação X Y

X implica Y

se X então Y

se compra X então compra Y

define-se

suporte = Número de registros com X e Y

Número total de registros

confiança = Número de registros com X e Y

Número de registros com X

AIS SETM

Apriori Apriori -TID

Apriori-Hybrid Dense – Miner

MiRABIT

Algoritmos de Regras de Associação

(1) Dado um limiar de suporte minsup, no primeiro passo encontre os itens que aparecem ao menos numa fração das transações igual a minsup. Este conjunto é chamado L1, dos itens freqüentes.

(2) Os pares dos itens em L1 se tornam pares candidatos C2 para o segundo passo. Os pares em C2 cuja contagem alcançar minsup são os pares freqüentes L2.

(3) As trincas candidatas C3 são aqueles conjuntos {A, B, C} tais que todos os {A, B}, {A, C} e {B, C} estão em L2. No terceiro passo, conte a ocorrência das trincas em C3; aquelas cuja contagem alcançar minsup são as trincas freqüentes, L3.

(4) Proceda da mesma forma para tuplas de ordem mais elevada, até os conjuntos se tornarem vazios. Li são os conjuntos freqüentes de tamanho i; Ci+1 é o conjunto de tamanho i+1 tal que cada subconjunto de tamanho i está em Li.

Algoritmo Apriori

Dada a tabela abaixo onde cada registro corresponde a uma transação de um cliente, com itens assumindo valores binários (sim/não), indicando se o cliente comprou ou não o respectivo item, descobrir todas as regras associativas, determinando o seu suporte (sup) e grau de certeza (conf).

Exemplo de descoberta de regras associativas

TID leite café cerveja pão manteiga arroz feijão1 não sim não sim sim não não2 sim não sim sim sim não não3 não sim não sim sim não não4 sim sim não sim sim não não5 não não sim não não não não6 não não não não sim não não7 não não não sim não não não8 não não não não não não sim9 não não não não não sim sim

10 não não não não não sim não

(1) Calcular o suporte de conjuntos com um item.

Determinar os itens freqüentes com sup 0,3.

(2) Calcular o suporte de conjuntos com dois itens.

Determinar conjuntos de itens freqüentes com sup 0,3.

Obs: se um item não é freqüente em (1), pode ser ignorado aqui.

Descobrir as regras com alto fator de certeza.

(3) Calcular o suporte de conjuntos com três itens.

Determinar conjuntos de itens freqüentes com sup 0,3.

Obs: pelo mesmo motivo anterior, só é necessário se considerar conjuntos de itens que são freqüentes pelo passo anterior.

Descobrir regras com alto fator de certeza.

Dada uma regra de associação “Se compra X então compra Y”, os fatores sup e conf são:

sup = Número de registros com X e Y

Número total de registros

conf = Número de registros com X e Y

Número de registros com X

Conjunto de itens suporte{leite} 2{café} 3

{cerveja} 2{pão} 5

{manteiga} 5{arroz} 2{feijão} 2

Conjunto de itens suporte{café} 3{pão} 5

{manteiga} 5

C1

L1

C2 , L2

C3, L3

Conjunto de itens suporte{café, pão} 3

{café, manteiga} 3{pão, manteiga} 4

Conjunto de itens suporte{café, pão, manteiga} 3

Regras candidatas com dois itens com o seu valor de certeza:

Conjunto de itens: {café, pão}

Se café Então pão conf = 1,0

Se pão Então café conf = 0,6

Conjunto de itens: {café, manteiga}

Se café Então manteiga conf = 1,0

Se manteiga Então café conf = 0,6

Conjunto de itens: {pão, manteiga}

Se pão Então manteiga conf = 0,8

Se manteiga Então pão conf = 0,8

Regras candidatas com três itens com o seu valor de certeza:

Conjunto de itens: {café, manteiga, pão}

Se café, manteiga Então pão conf = 1,0

Se café, pão Então manteiga conf = 1,0

Se manteiga, pão Então café conf = 0,75

Se café Então manteiga, pão conf = 1,0

Se manteiga Então café, pão conf = 0,6

Se pão Então café, manteiga conf = 0,6

Padrões descobertos, minsup = 0,3 e minconf = 0,8:

Se café Então pão conf = 1,0

Se café Então manteiga conf = 1,0

Se pão Então manteiga conf = 0,8

Se manteiga Então pão conf = 0,8

Se café, manteiga Então pão conf = 1,0

Se café, pão Então manteiga conf = 1,0

Se café Então manteiga, pão conf = 1,0

portanto, suporte e confiança são usados como filtros, para diminuir o número de regras geradas

mas, se considerarmos a regra

Se A então B      com confiança de 90%   

podemos garantir que seja uma regra interessante? 

LIFT

a regra (1)  Se A então B   com confiança de 90%     NÃO  é  interessante se B aparece em cerca de 90% das

transações, pois a regra não acrescentou nada em termos de conhecimento.

já a regra (2):  Se C então D com confiança de 70%   e´ muito mais importante se D aparece, digamos, em 10% das transações.

lift = confiança da regra / suporte do conseqüente

lift da regra (1) = 0,9 / 0,9 = 1

lift da regra (2) = 0,7 / 0,1 = 7

Improvement

Foi proposto para diminuir o número de regras geradas, utilizando o princípio de que uma regra mais simples é uma regra melhor, desde que a regra mais complexa ou mais longa tenha confiança menor ou igual do que a regra mais simples ou menor.

Exemplos

78,78% das cirurgias múltiplas são realizadas em pessoas do sexo masculino. Esta regra se mostra interessante, pois a concentração para o sexo masculino não condiz com a realidade da base de dados que na sua maioria é do sexo feminino. Ao se estudar esta regra foi encontrada além da relação do procedimento com o sexo masculino também com a faixa etária de 0 a 9 anos. Não foram encontradas razões, dentro dos atributos da base de dados, que justificassem a concentração deste procedimento neste sexo e faixa etária. Esta situação foi encaminhada para o setor de avaliação e controle para um melhor estudo.

80,45% das herniorrafias inguinais (unilateral) múltiplas são realizadas em pessoas do sexo masculino. Estudando mais profundamente foi verificado que este procedimento estava concentrado em crianças de 0 a 4 anos, caracterizando um erro de nomenclatura nos procedimentos, pois nesta idade um procedimento de urologia muito comum é o tratamento da hidrocele comunicante muito parecido com a herniorrafia inguinal. Foram tomadas medidas para que tal procedimento fosse registrado de forma correta pelos hospitais, pois a herniorrafia inguinal pode levar a uma internação de urgência ou emergência, aumentado seu custo, já o tratamento da hidrocele comunicante é um procedimento eletivo.

Exemplo: Conhecer o perfil do cliente associado com as compras que o mesmo faz na loja

Regras geradas:

6.CASAAPTO=CASA SEXO=F 1036 ==> RESIDPROPALUG=PROPRIA 1033 conf:(1) 22.ESTADOCIVIL=CASADO 2330 ==> RESIDPROPALUG=PROPRIA 2243 conf:(0.96) 39.NODEFILHOS=0 1061 ==> CASAAPTO=CASA 1017 conf:(0.96) 98.ESTADOCIVIL=CASADO SEXO=M 1390 ==> CASAAPTO=CASA 1279 conf:(0.92)176.SEXO=F 1369 ==> RESIDPROPALUG=PROPRIA 1164 conf:(0.85) 5.ESTADOCIVIL=SOLTEIRO BAIRRO=BELA_VISTA RESIDPROPALUG=ALUGADA 282 ==> MORAQTTEMPO=1 282 conf:(1) 11.ESTADOCIVIL=VIUVO OBJCOMPRA=CONSTR_PREDIO/APTO/CASA_PROPRIA 200 ==> CASAAPTO=APTO 200 conf:(1) 13.ESTADOCIVIL=VIUVO RESIDPROPALUG=ALUGADA 192 ==> CASAAPTO=APTO 192 conf:(1) 37.PRIMEIRAVEZ=NAO FAIXETFILHO=SEM_FILHOS SEXO=M 700 ==> CASAAPTO=CASA 697 conf:(1) 67.BAIRRO=CENTRO SEXO=F 811 ==> PRIMEIRAVEZ=NAO 798 conf:(0.98) 69.ESTADOCIVIL=CASADO OBJCOMPRA=REFORMA_EM_CASA 840 ==> RESIDPROPALUG=PROPRIA 819 conf:(0.98) 13.ESTADOCIVIL=CASADO FAIXETFILHO=ADULTO 819 ==> RESIDPROPALUG=PROPRIA 819 conf:(1) 16.FAIXETFILHO=SEM_FILHOS BAIRRO=BELA_VISTA MORAQTTEMPO=1 282 ==> ESTADOCIVIL=SOLTEIRO 282 conf:(1)384.ESTADOCIVIL=SOLTEIRO BAIRRO=BELA_VISTA 331 ==> FAIXETFILHO=SEM_FILHOS 327 conf:(0.99) 79.FAIXETFILHO=ADULTO RESIDPROPALUG=ALUGADA SEXO=F 192 ==> CASAAPTO=APTO 192 conf:(1)379.OBJCOMPRA=REFORMA_EM_CASA 993 ==> RESIDPROPALUG=PROPRIA 957 conf:(0.96) 17.SUBCATEGPRODUTO=ROLO_PARA_PINTURA 41 ==> OBJCOMPRA=REFORMA_EM_CASA 22 conf:(0.54) 9.PRIMEIRAVEZ=SIM SEXO=F 84 ==> FAIXETFILHO=SEM_FILHOS 71 conf:(0.85) 34.PRIMEIRAVEZ=SIM 343 ==> SEXO=M 259 conf:(0.76) 35.SUBCATEGPRODUTO=LUVA 96 ==> SEXO=M 72 conf:(0.75) 41.SUBCATEGPRODUTO=ADAPTADOR 30 ==> SEXO=M 22 conf:(0.73) 44.FAIXETFILHO=ADULTO SUBCATEGPRODUTO=REJUNTE 28 ==> SEXO=F 20 conf:(0.71) 46.SUBCATEGPRODUTO=CHUVEIRO 38 ==> SEXO=M 27 conf:(0.71) 47.SUBCATEGPRODUTO=REDUCAO 27 ==> SEXO=M 19 conf:(0.7) 52.SEXO=F SUBCATEGPRODUTO=PISO 31 ==> FAIXETFILHO=ADULTO 21 54.SUBCATEGPRODUTO=TOMADA 70 ==> SEXO=M 47 conf:(0.67) 56.SUBCATEGPRODUTO=FITA_VEDA_ROSCA 30 ==> SEXO=M 20 conf:(0.67) 72.FAIXETFILHO=ADULTO 1136 ==> SEXO=F 705 conf:(0.62)269.SUBCATEGPRODUTO=LUVA 96 ==> SEXO=M 72 conf:(0.75)344.FAIXETFILHO=CRIANCA 765 ==> SEXO=M 487 conf:(0.64)386.SUBCATEGPRODUTO=PISO 74 ==> SEXO=M 43 conf:(0.58) 88.PRIMEIRAVEZ=NAO 3065 ==> SEXO=F 1285 conf:(0.42)226.SUBCATEGPRODUTO=PISO 74 ==> RESIDPROPALUG=PROPRIA 60 conf:(0.81)

Classificação: árvores de decisão

Árvore de decisão

montante

médio baixo alto

contasalário

baixo alto não sim

E=simE=não E=não E=sim

E=sim

Árvores de Decisão

As árvores de decisão são representações gráficas que consistem:

de nodos que representam os atributos; de arcos que correspondem ao valor de um

atributo; de nodos folha que designam uma classificação.

Árvores de decisão

As árvores de decisão: particionam recursivamente um conjunto de

dados, até que cada subconjunto obtido deste particionamento contenha casos de uma única classe;

organizam dados de maneira compacta; classificam novos casos.

Exemplo:

caso montante idade salário conta empréstimo 1 médio sênior baixo sim não 2 médio sênior baixo não não 3 baixo sênior baixo sim sim 4 alto média baixo sim sim 5 alto jovem alto sim sim 6 alto jovem alto não não 7 baixo jovem alto não sim 8 médio média baixo sim não 9 médio jovem alto sim sim 10 alto média alto sim sim 11 médio média alto não sim 12 baixo jovem baixo não sim 13 baixo sênior alto sim sim 14 alto média baixo não não

Algoritmo ID3 [Quinlan 86]

Passos para construção de uma árvore de decisão:1. Seleciona um atributo como sendo o nodo raiz ;

2. Arcos são criados para todos os diferentes valores do atributo selecionado no passo 1;

3. Se todos os exemplos de treinamento sobre uma folha pertencerem a uma mesma classe, esta folha recebe o nome da classe. Se todas as folhas possuem uma classe, o algoritmo termina;

4. Senão, o nodo é determinado com um atributo que não ocorra no trajeto da raiz, e arcos são criados para todos os valores. O algoritmo retorna ao passo 3.

Algoritmo ID3

EntropiaEntropia

Quantidade necessária de informação para identificar a classe de um caso

Entropia(S) = -(p1 log 2 p1 + p2 log 2 p2 + ...+ pn log 2 pn )

sendo n o número de valores possíveis da classe

Ganho de informaçãoGanho de informação

Redução esperada da entropia Ganho (S, A) = Entropia(S) - ((|Sv| / |S|)*Entropia(Sv))onde Sv é um subconjunto de S correspondente a um valor do atributo A

Entropia e Ganho de Informação

Considerando apenas 2 valores possíveis, a entropia é dada pela fórmula:

Entropia (S) = - (p+ log2 p+ + p- log2 p-)

Onde:

S é a totalidade de amostras do conjunto

p+ é a proporção de amostras positivas

p- é a proporção de amostras negativas

Exemplo:

Se S é uma coleção de 14 exemplos com 9 instâncias positivas e 5 negativas, então:

Entropia (S) = - (9/14) Log 2 (9/14) – (5/14) Log 2 (5/14) = 0.940

Ganho de Informação

O ganho de informação é dado por:Gain (S, A) = Entropia (S) - ((|Sv| / |S|) * Entropia (Sv))

Onde: Gain (S, A) é o ganho do atributo A sobre o conjunto SSv = subconjunto de S para um valor do atributo A|Sv| = número de elementos de Sv|S| = número de elementos de S

Nodo raiz

Selecionando o melhor atributo:

Entropia(S) = - 9/14 log2 (9/14) - 5/14 log 2 (5/14) = 0,940

caso montante idade salário conta empréstimo1 médio sênior baixo sim não2 médio sênior baixo não não3 baixo sênior baixo sim sim4 alto média baixo sim sim5 alto jovem alto sim sim6 alto jovem alto não não7 baixo jovem alto não sim8 médio média baixo sim não9 médio jovem alto sim sim10 alto média alto sim sim11 médio média alto não sim12 baixo jovem baixo não sim13 baixo sênior alto sim sim14 alto média baixo não não

Entropia(montante=médio) = - 2/5 log2 (2/5) - 3/5 log 2 (3/5) = 0,971

Entropia(montante=baixo) = - 4/4 log2 (4/4) - 0/4 log2 (0/4) = 0

Entropia(montante=alto) = - 3/5 log2 (3/5) - 2/5 log2 (2/5) = 0,971

Gain (S,montante) = 0,940 - (5/14) 0,971 - (4/14) 0 - (5/14) 0,971 = 0,246

Gain (S,idade) = 0,940 - (4/14) 1 - (5/14) 0,971 - (5/14) 0,722 = 0,049

Gain (S,salário) = 0,940 - (7/14) 0,592 - (7/14) 0,985 = 0,151

Gain (S,conta) = 0,940 - (8/14) 0,811 - (6/14) 1 = 0,047

Escolha do próximo atributo

Qual atributo pode ser testado aqui?

montante

médio baixo alto

?? sim

{C1,C2,...C14}[9+, 5-]

{C1,C2,C8,C9,C11}[2+, 3-]

{C3,C7,C12,C13}[4+, 0-]

{C4,C5,C6,C10,C14}[3+, 2-]

Escolha o próximo atributo

Qual é o melhor atributo?

Smédio = {C1,C2,C8,C9,C11}

Gain (Smédio, idade) = 0,971 - (2/5)0 - (2/5)1 - (1/5)0 = 0,571

Gain (Smédio, salário) = 0,971 - (3/5)0 - (2/5)0 = 0,971

Gain (Smédio, conta) = 0,971 - (3/5)0,918 - (2/5)1= 0,020

montante

médio baixo alto

?salário sim

{C1,C2,...C14}[9+, 5-]

{C1,C2,C8,C9,C11}[2+, 3-]

{C3,C7,C12,C13}[4+, 0-]

{C4,C5,C6,C10,C14}[3+, 2-]

baixo alto

{C1,C2,C8}[0+, 3-]

{C9,C11}[2+, 0-]

Resultado

montante

médio baixo alto

contasalário

baixo alto não sim

E=simE=não E=não E=sim

E=sim

Avaliação da árvore de decisão

Avaliação através da taxa de acertos/erros: taxa_de_acertos = Nacertos / Ntotal taxa_de_erros = Nerros / Ntotal

Utilizando o conjunto de treinamento: proporção_de_acertos = 14 / 14 = 100% proporção_de_erros = 0 / 14 = 0%

Conjunto de teste

caso montante idade salário conta empréstimo empréstimo(predito)

15 médio sênior alto sim sim sim 16 médio sênior alto não não sim 17 baixo jovem alto sim sim sim 18 baixo sênior alto não não sim 19 alto média alto não não não 20 alto jovem alto sim sim sim 21 médio jovem alto sim sim sim

Proporção de acertos/erros

Utilizando o conjunto de teste: proporção_de_acertos = Nacertos / Ntotal

proporção_de_acertos = 5 / 7 = 71,4%

proporção_de_erros = Nerros / Ntotal

proporção_de_erros = 2 / 7 = 28,6%

Algoritmo C4.5 [Quinlan 93]

O algoritmo C4.5 possibilita: trabalhar com valores contínuos trabalhar com valores indisponíveis podar árvores de decisão derivar regras

Atributos com valores contínuos

caso montante Idade salário conta empréstimo1 médio sênior 780 sim não2 médio sênior 980 não não3 baixo sênior 860 sim sim4 alto média 760 sim sim5 alto jovem 1250 sim sim6 alto jovem 3210 não não7 baixo jovem 4560 não sim8 médio média 990 sim não9 médio jovem 1250 sim sim10 alto média 6780 sim sim11 médio média 8900 não sim12 baixo jovem 670 não sim13 baixo sênior 567 sim sim14 alto média 670 não não

Atributos com valores contínuos

Envolve o seguinte teste:atributo <= valor ou atributo > valor

e os seguintes passos: ordenar os valores de forma crescente (670, 760, ... 8900)

selecionar o valor que favorecerá na redução da informação necessária (990)

Atributos com valores contínuos

Considerando o teste:

salário <= 990 ou salário > 990

obtemos a árvore:

montante

médio baixo alto

contasalário

não sim não sim

sim

< = 990 > 990 não sim

Poda de árvores de decisão

A poda de uma árvore de decisão é realizada: considerando a taxa de erros substituindo uma subárvore por um nodo folha

Derivação de regras

se (montante = médio) e (salário = baixo) então empréstimo = não

se (montante = médio) e (salário = alto) então empréstimo = sim

se (montante = baixo) então empréstimo = sim

...

montante

médio baixo alto

contasalário

não sim não sim

sim

baixo alto não sim

Detecção de desvios

Desvios: árvores de decisão

dados que não se enquadram no modelo pré-definido

Desvios: formação de agrupamentos

agrupamentos com um número pequeno de casos

Desvios: regras de associação

se tenho uma regra do tipo

X Y

com grau de confiança de 98%, podemos considerar os 2% restantes como desvio

Desvios: estatística

análise univariada: usada para atributos isolados

se o atributo for numérico, pode-se utilizar o desvio padrão

Numa distribuição normal N (,2) onde é a média e 2 a variância podemos considerar desvio os valores que estão a 3

ou mais desvios-padrão da média, para mais ou para menos

Desvios: estatística

Análise multivariada: para análise de mais de uma variável

regressão linear (para dados numéricos)

qui-quadrado (para dados categóricos)

análise de correspondência (para dados categóricos)

análise de resíduos em tabelas de contingência (para dados categóricos)

Formação de agrupamentos

Exemplos

Objetivo : Conhecer o perfil do cliente que compra na loja

Cluster 0

51,82% da população - perfil de um consumidor casado, com residência própria, predominantemente em casas contra uma pequena parcela que reside em apartamentos, que já fez mais de uma compra na loja, dividindo-se quase que igualmente entre homens e mulheres.

Objetivo : Conhecer o perfil do cliente que compra na loja

Cluster 1

17,15% da população - clientes sem filhos, solteiros, que residem em casas próprias, sendo a maioria cliente antigo; 47% com estado civil casado estão, na sua grande maioria, casados a menos de 1 ano.

Objetivo : Conhecer o perfil do cliente que compra na loja

Cluster 3

14,60% da população - clientes do sexo feminino, com filhos adultos, com idade dos 50 aos 65 anos em sua maioria, residindo a maior parte em casas mas com um número relativamente grande morando em apartamentos (25%), todos com residência própria, e que também já compraram mais de uma vez na loja; o bairro, para 60% dos casos, é “CENTRO”.

Objetivo : Conhecer o perfil do cliente que compra na loja

Cluster 4

9,49% dos casos - pessoas que moram em residências alugadas, sem filhos ou com filhos pequenos, a maioria do sexo masculino, morando predominantemente em casas. Dividem-se principalmente entre solteiros e casados, sendo grande parte deles casada a menos de 1 ano.

Softwares p/ mineração

Intelligent Miner – IBM Weka – softwre livre – Nova Zelândia Darwin – Oracle Sipina – universitário p/ árvores de decisão Clementine – 1º? Microsoft OLE DB for Data Mining ...

top related