Mineração de Dados
(Regras de associação)
M. Sc. Luiz Alberto
lasf.bel@gmail.com
Prof. Luiz Alberto
Aula – Mineração de Dados – 1 –
Aplicações – Regras de Associação
• Perfis de clientes (“Market basket analysis”)
• “Merchandizing”
• Detecção de fraudes em seguros de saúde
• Organização de produtos em vitrines de lojas
Prof. Luiz Alberto
Aula – Mineração de Dados – 2 –
Regras de Associação
Uma regra de associação representa um padrão de relacionamento entre itens de dados do domínio da aplicação que ocorre com uma determinada freqüência na base de dados.
•parte significativa das compras de homens, às sextas-feiras à noite, que inclui fraldas, inclui também cerveja.
{fralda} ⇒ {cerveja}
•o cliente que compra pão e manteiga, 80% das vezes compra leite.
{pão, manteiga} ⇒ {leite}
•muitos pacientes aidético que contraem a doença candidíase também têm pneumonia.
{candidíase} ⇒ {pneumonia}
Prof. Luiz Alberto
Aula – Mineração de Dados – 3 –
Regras de Associação
• Considere a regra A ⇒ B.
A é chamado de antecedente da regra e B é chamado de
conseqüente.
a sua medida de suporte (Sup) representa a porcentagem de transações da base de dados que contêm os itens de A e
B, indicando a relevância da mesma.
Já a sua medida de confiança (Conf) representa, dentre as transações que possuem os itens de A, a porcentagem de transações que possuem também os itens de B,
Prof. Luiz Alberto4
Definições úteis
• Regra A ==> B
• Confidência = P (A e B ocorrerem juntos) / P(A)
= P (B | A)
• Suporte = P (A e B ocorrerem juntos)
Prof. Luiz Alberto
Aula – Mineração de Dados – 5 –
Regras de Associação
O problema da mineração de regras de associação, conforme definido originalmente em 1993, consiste em encontrar todas as regras de associação que possuam suporte e confiança maiores ou iguais, respectivamente, a um suporte mínimo (SupMin) e uma confiança mínima (ConfMin), especificados pelo usuário.
Prof. Luiz Alberto
Aula – Mineração de Dados – 6 –
Regras de Associação
TID Produtos Comprados
---1 biscoito, cerveja, chá, salaminho 2 cerveja, couve, lingüiça, pão, queijo 3 café, brócolis, couve , pão
4 brócolis, café, cerveja, couve, pão, salaminho 5 brócolis, café, couve, pão, refrigerante
6 couve, lingüiça
Prof. Luiz Alberto
Aula – Mineração de Dados – 7 –
Regras de Associação
Observe que cada registro da base de dados armazena a relação de produtos adquiridos por um cliente específico.
Um exemplo de regra de associação que poderia ser minerada nesta base de dados, através
da utilização de uma ferramenta de data
mining, é dado por: {cerveja} => {salaminho}.
Note que duas das seis transações que compõem a base contêm os produtos {cerveja} e {salaminho}. Desta maneira, o suporte da regra {cerveja} => {salaminho} pode ser calculado da seguinte forma: 2/6 = 33,33%.
Prof. Luiz Alberto
Aula – Mineração de Dados – 8 –
Regras de Associação
Observe agora que na base de dados, existem duas transações que contêm os produtos {cerveja} e {salaminho} juntos e três transações que contêm o produto {cerveja}.
A confiança da regra {cerveja} => {salaminho} pode então ser calculada da seguinte maneira: 2/3 = 66,67%.
Este valor indica que 66,67% dos consumidores que compraram {cerveja} também compraram {salaminho}.
Prof. Luiz Alberto
Aula – Mineração de Dados – 9 –
Regras de Associação
Regras de associação são extraídas a partir de bases de dados que contêm transações - formadas por conjuntos de itens do domínio
da aplicação.
Id-Transação (TID) Itens Comprados 1 leite, pão, refrigerante 2 cerveja, carne
3 cerveja, fralda, leite, refrigerante 4 cerveja, fralda, leite, pão 5 fralda, leite, refrigerante
{fralda} ⇒ {cerveja} confiança de 66% (suporte médio) {fralda} ⇒ {leite} confiança de 100% (suporte alto) {leite} ⇒ {fralda} confiança de 75% (suporte alto) {carne} ⇒ {cerveja} confiança de 100% (suporte baixo)
Prof. Luiz Alberto
Aula – Mineração de Dados – 10 –
Regras de Associação
Regras de associação possuem índices que indicam sua relevância e a validade. O fator de suporte de uma regra X ⇒ Y é definido pela porcentagem de transações que incluem todos os itens do conjunto X U Y.
→Representa a fração das transações que satisfazem tanto o antecedente quanto o conseqüente da regra. O suporte de uma regra indica sua relevância.
Seja R a regra X ⇒ Y.
Seja T o número de transações consideradas.
Seja TXUYo número de transações que incluem os elementos de X U Y.
Suporte(R) = TXUY/ T
TID Itens Comprados Suporte({leite} ⇒ {suco}) = 2 / 4 = 50% 101 leite, pão, suco Suporte({suco} ⇒ {leite}) = 50% 792 leite, suco Suporte({pão} ⇒ {suco}) = ___ 1130 leite, ovos Suporte({pão} ⇒ {ovos}) = ___ 1735 pão, biscoito, café Suporte({pão,café} ⇒ {biscoito}) = ___
Prof. Luiz Alberto
Aula – Mineração de Dados – 11 –
Regras de Associação
O fator de confiança de uma regra X ⇒ Y é definido pela porcentagem de transações que incluem os itens X e Y em relação a todas que incluem os itens de X.
→Representa o grau de satisfatibilidade do conseqüente, em relação às transações que incluem o antecedente. A confiança indica a validade da regra.
Seja R a regra X ⇒ Y.
Seja TXo número de transações que incluem os elementos de X. Seja TXUYo número de transações que incluem os elementos de X U Y.
Confiança(R) = TXUY/ TX
Id-T. Itens Comprados Confiança({leite} ⇒ {suco}) = 2 / 3 = 67% 101 leite, pão, suco Confiança({suco} ⇒ {leite}) = 2 / 2 = 100% 792 leite, suco Confiança({pão} ⇒ {suco}) = ___ 1130 leite, ovos Confiança({pão} ⇒ {ovos}) = ___ 1735 pão, biscoito, café Confiança({pão,café} ⇒ {biscoito}) = ___
Prof. Luiz Alberto
Aula – Mineração de Dados – 12 –
Mineração de Regras de Associação
→Entrada:
· Base de dados de transações; · Suporte mínimo;
· Confiança mínima.
→Saída:
· Todas as regras de associação que possuem suporte e confiança maiores ou iguais ao suporte e à confiança mínimos.
Prof. Luiz Alberto
Aula – Mineração de Dados – 13 –
Algoritmos de Mineração
(
de Regras de Associação
)• Apriori
• Partition
Prof. Luiz Alberto
O Algoritmo Apriori - exemplo
• Suporte mínimo = 30%
Prof. Luiz Alberto
O Algoritmo Apriori - exemplo
• Suporte mínimo = 30%
Prof. Luiz Alberto
O Algoritmo Apriori - exemplo
• Suporte mínimo = 30%
L1
Prof. Luiz Alberto
O Algoritmo Apriori - exemplo
• Suporte mínimo = 30%
L1
L2
Prof. Luiz Alberto
O Algoritmo Apriori - exemplo
• Suporte mínimo = 30%
L1
L2
Prof. Luiz Alberto
O Algoritmo Apriori - exemplo
• Suporte mínimo = 30%
L1
L2
Prof. Luiz Alberto
O Algoritmo Apriori - exemplo
• Suporte mínimo = 30%
L1
L2
L3
Prof. Luiz Alberto
O Algoritmo Apriori - exemplo
• Conjunto de itens frequentes
Exemplos de regras:
Se {Pão} => {Manteiga} = 43% Se {Pão,Leite} => {Cerveja} = 60% Se {Leite} => {Pão,Cerveja} = 38%
Prof. Luiz Alberto
WEKA: JAVA para Data Mining
@relation produtos @attribute leite {yes, no} @attribute cafe {yes, no} @attribute biscoito {yes, no} @attribute farinha {yes, no} @attribute açucar {yes, no} @attribute pao {yes, no} @attribute feijao {yes, no} @data
no, yes, no, yes, yes, no, no yes, no, yes, yes, yes, no, no no, yes, no, yes, yes, no, no yes, yes, no, yes, yes, no, no no, no, no, no, yes, no, no no, no, no, no, yes, no, no yea, no, no, no, yes, no, no yes, no, yes, yes, yes, no, no yes, no, yes, no, yes, no, no yes, no, yes, yes, yes, no, yes
Prof. Luiz Alberto
WEKA: JAVA para Data Mining
• Carga do arquivo;
• Análise dos atributos e seus valores;
• Indicação de pré-processamento;
• Escolha da tarefa de data mining;
• Escolha do algoritmo a aplicar;
• Acerto dos parâmetros;
• Execução;
Prof. Luiz Alberto
WEKA: JAVA para Data Mining
=== Run information === Scheme: weka.associations.Apriori -N 10 -T 0 -C 0.9 -D 0.05 -U 1.0 -M 0.1 -S -1.0 Relation: paoeleite Instances: 10 Attributes: 7 leite cafe biscoito farinha açucar pao feijao
=== Associator model (full training set) ===
Prof. Luiz Alberto
WEKA: JAVA para Data Mining
• Apriori • =======
• Minimum support: 0.5
• Minimum metric <confidence>: 0.9
• Number of cycles performed: 8
• Generated sets of large itemsets: • Size of set of large itemsets L(1): 7 • Size of set of large itemsets L(2): 12 • Size of set of large itemsets L(3): 6
Prof. Luiz Alberto
WEKA: JAVA para Data Mining
• Best rules found:
• 1. pao=no 10 ==> açucar=yes 10 conf:(1)
• 2. açucar=yes 10 ==> pao=no 10 conf:(1)
• 3. feijao=no 9 ==> açucar=yes 9 conf:(1)
• 4. feijao=no 9 ==> pao=no 9 conf:(1)
• 5. pao=no feijao=no 9 ==> açucar=yes 9 conf:(1)
• 6. açucar=yes feijao=no 9 ==> pao=no 9 conf:(1)
• 7. feijao=no 9 ==> açucar=yes pao=no 9 conf:(1)
• 8. açucar=yes 10 ==> feijao=no 9 conf:(0.9)
• 9. pao=no 10 ==> feijao=no 9 conf:(0.9)
• 10. açucar=yes pao=no 10 ==> feijao=no 9 conf:(0.9)
Prof. Luiz Alberto
Produtos.arff
@relation produtos @attribute leite {yes,no} @attribute cafe {yes,no} @attribute biscoito {yes,no} @attribute farinha {yes,no} @attribute açucar {yes,no} @attribute pao {yes,no} @attribute feijao {yes,no} @data
no, yes, no, yes, yes, no, no yes, no, yes, yes, yes, no, no no, yes, no, yes, yes, no, no yes, yes, no, yes, yes, no, no no, no, no, no, yes, no, no no, no, no, no, yes, no, no yes, no, no, no, yes, no, no yes, no, yes, yes, yes, no, no yes, no, yes, no, yes, no, no yes, no, yes, yes, yes, no, yes
– 27 – @relation produtos @attribute leite {yes} @attribute cafe {yes} @attribute biscoito {yes} @attribute farinha {yes} @attribute açucar {yes} @attribute pao {yes} @attribute feijao {yes} @data
?, yes, ?, yes, yes, ?, ? yes, ?, yes, yes, yes, ?, ? ?, yes, ?, yes, yes, ?, ? yes, yes, ?, yes, yes, ?, ? ?, ?, ?, ?, yes, ?, ? ?, ?, ?, ?, yes, ?, ? yes, ?, ?, ?, yes, ?, ? yes, ?, yes, yes, yes, ?, ? yes, ?, yes, ?, yes, ?, ? yes, ?, yes, yes, yes, ?, yes
Prof. Luiz Alberto – 28 –