Download - ALGORITMOS para Descoberta de Conhecimento em Bases de Dados prof. Luis Otavio Alvares II/UFRGS
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 ...