Title: Data Mining: Indu
1Data Mining Indução de Regras de Associação
- Leonardo Cole Neto
- Rodrigo Teixeira Ramos
2Minerando Regras de Associação em Grandes Bases
de Dados
- Minerando regras de associação
- Minerando regras de associação booleana
uni-dimensionais a partir de bancos transacionais - Minerando regras de associação multi-nível a
partir de bancos transacionais - Minerando regras de associação multi-dimencionais
a partir de bancos transacionais e data
warehouses - Da mineração de associações à análise de
correlação - Mineração de associações baseada em restrições
- Resumo
3Mineração de Regras de Associação
- Definição
- Achar padrões, associações, correlações
frequentes em conjuntos de itens ou objetos em
um banco de dados transacional, relacional ou
outros tipo de repositórios de informação. - Aplicações
- Análise de compras, cross-marketing, design de
catálogos de produtos, clustering, classificação,
etc. - Exemplos.
- Regra Body Head support, confidence.
- buys(x, diapers) buys(x, beers) 0.5,
60 - major(x, CS) takes(x, DB) grade(x, A)
1, 75
4Regras de Associação Conceitos Básicos
- Dados (1) conjunto de transações, (2) cada
transação é uma lista de itens (comprados por um
cliente em uma visita) - Achar todas as regras que correlacionam a
presença de um conjunto de itens com a presença
de outro conjunto de itens em uma mesma transação - E.g., 98 das pessoas que compram pneus e
auto-acessórios, também fazem algum serviço
automotivo. - Achar todas as regras X Y ? Z com um mínimo de
support e confidence - Suporte (support), s, probabilidade que uma
transação contenha X ? Y ? Z - Confidência (confidence), c, probabilidade
condicional que uma transação que contenha X ?
Y também contém Z
5Minerando Regras de Associação em Grandes Bases
de Dados
- Minerando regras de associação
- Minerando regras de associação booleana
uni-dimensionais a partir de bancos transacionais - Minerando regras de associação multi-nível a
partir de bancos transacionais - Minerando regras de associação multi-dimencionais
a partir de bancos transacionais e data
warehouses - Da mineração de associações à análise de
correlação - Mineração de associações baseada em restrições
- Resumo
6Mineração de Regras de Associação
- Associações booleanas vs. quantitativas (Baseadas
nos tipos de valores manuseados) - buys(x, SQLServer) buys(x, DMBook)
buys(x, DBMiner) 0.2, 60 - age(x, 30..39) income(x, 42..48K)
buys(x, PC) 1, 75 - Associações Uni-dimensionais vs.
Multi-dimensionais (Baseadas nas dimensões dos
dados envolvidos) - Análise de Nível único vs. Múltiplos níveis
(Baseadas nos níveis de abstração) - age(x, 30..39) buys(x, laptop computer)
- age(x, 30..39) buys(x, computer)
7Mineração de conjuntos de itens frequentes O
passo chave
- Achar os conjuntos de itens frequentes (itemsets
frequentes) o conjunto de itens que tem um
mínimo de support - Um subconjunto de um itemset frequente, também
deve ser um itemset frequente - Se AB é um itemset frequente, ambos A e B
devem ser itemsets frequentes - Achar iterativamente itemsets frequentes com
cardinalidade de 1 à k (k-itemset) - Usar os itemsets frequentes para gerar as regras
de associação.
8O algoritmo Apriori
- Passo de união(join) Ck é gerado, unindo Lk-1com
ele mesmo - Passo de poda(prune) Qualquer (k-1)-itemset que
não seja frequente, não pode ser um subconjunto
de um k-itemset frequente - Pseudo-código
- Ck itemset candidato de tamanho k
- Lk itemset frequente de tamanho k
- L1 items frequentes de tamanho 1
- for (k 1 Lk !? k) do begin
- Ck1 candidatos gerados a partir de Lk
- for each transaction t in database do
- incremente o contador de todos os
candidatos em Ck1 que
estão contidos em t - Lk1 candidatos em Ck1 com min_support
- end
- return ?k Lk
9O algoritmo Apriori - Exemplo
Database D
L1
C1
Scan D
C2
C2
L2
Scan D
C3
L3
Scan D
10Como gerar os candidatos?
- Suponha que os itens em Lk-1 são listados em uma
ordem - Passo 1 auto-união Lk-1 (joining step)
- insert into Ck
- select p.item1, p.item2, , p.itemk-1, q.itemk-1
- from Lk-1 p, Lk-1 q
- where p.item1q.item1, , p.itemk-2q.itemk-2,
p.itemk-1 lt q.itemk-1 - Passo 2 poda (prune step)
- forall itemsets c in Ck do
- forall (k-1)-subsets s of c do
- if (s is not in Lk-1) then delete c from Ck
11Exemplo da geração dos candidatos
- L3abc, abd, acd, ace, bcd
- Auto-união L3L3
- abcd de abc e abd
- acde de acd e ace
- Poda
- acde é removido pois ade não está em L3
- C4abcd
12Gargalos de performance no Apriori
- O núcleo do algoritmo
- Usa (k 1)-itemsets frequentes para gerar
k-itemsets candidatos - Usa iterações pelo BD e casamento de padrões para
coletar contadores para os itemsets candidatos - O gargalo do Apriori geração dos candidatos
- Grandes conjuntos de candidatos
- 104 1-itemset frequentes gerarão 107 2-itemsets
candidatos - Para descobrir um padrão frequente de tamanho
100, é necessária a geração de 2100 ? 1030
candidatos. - Múltiplas iterações pelo BD
- Necessita (n 1 ) iterações, onde n é o tamanho
do maior padrão
13Métodos para melhorar a eficiência do Apriori
- Contagem dos itemsets baseada em Hashes Um
k-itemset que tenha o contador do hashing bucket
abaixo de um limite, não pode ser frequente - Redução de transações Uma transação que não
contenha nenhum k-itemset frequente, é inútil
para as próximas iterações do algoritmo - Particionamento Qualquer itemset que é
potencialmente frequente no BD deve ser frequente
em pelo menos uma partição do mesmo - Amostragem Mineração em um subconjunto dos
dados, menor limite de support um método para
determinar a completude - Contagem dinâmica de itemsets Adicionar um novo
candidato somente quando todos os seus
subconjuntos são estimados como frequentes
14Mineração de padrões frequentes sem a geração de
candidatos
- Compactar uma grande base de dados na estrutura
compacta de uma árvore FP, Frequent-Pattern tree
(FP-tree) - Altamente condensada, mas completa para mineração
de padrões frequentes - Evita iterações custosas com o BD
- Desenvolver um método eficiente, baseado em
FP-tree, para mineração de padrões frequentes - Dividir para conquistar decompor tarefas de
mineração - Evitar geração de candidatos
15Construindo uma FP-tree a partir de um BD
transacional
TID Items bought (ordered) frequent
items 100 f, a, c, d, g, i, m, p f, c, a, m,
p 200 a, b, c, f, l, m, o f, c, a, b,
m 300 b, f, h, j, o f, b 400 b, c, k,
s, p c, b, p 500 a, f, c, e, l, p, m,
n f, c, a, m, p
min_support 0.5
- Steps
- Na primeira iteração com o BD, achar os 1-itemset
frequentes - Ordenar os itens frequentes em ordem descendente
- Numa ova iteração com o banco, construir a árvore
16Benefícios da FP-tree
- Completude
- Nunca quebra padrões longos em uma transação
- Preserva completamente a informação para
mineração de padrões frequentes - Tamanho compacto
- Reduz informação irrelevante itens infrequentes
somem - Ordenação descendente da frequencia quanto mais
frequentes, mais compartilhados ficam os itens - Nunca é maior que a base de dados original
17Mineração de padrões frequentes usando FP-tree
- Dividir para conquistar
- Recursivamente, aumentar os padrões frequentes
usando FP-tree - Método
- Para cada item, construir seu pattern-base
condicional, e então sua FP-tree condicional - Repetir o processo para cada nova FP-tree
condicional - Até que a FP-tree resultante seja vazia, ou
contenha somente um caminho (caminhos únicos
gerarão todas as combinações de seus
sub-caminhos, cada um dos quais é um padrão
frequente)
18Passo 1 Da FP-tree para o Pattern-Base
Condicional
- Começando pela tabela de frequencia da FP-tree
- Atravessar a FP-tree seguindo o link de cada item
frequente - Acumular todos os prefixos de caminhos
transformados deste item apartir de um
pattern-base condicional
Pattern-bases condicionais item pattern-base
cond. c f3 a fc3 b fca1, f1, c1 m fca2,
fcab1 p fcam2, cb1
19Passo 2 Construir a FP-tree Condicional
- Para cada pattern-base
- Construir a FP-tree para os itens frequentes do
pattern-base
m-conditional pattern base fca2, fcab1
Header Table Item frequency head
f 4 c 4 a 3 b 3 m 3 p 3
f4
c1
Todos os padrões frequentes relacionados com m m,
fm, cm, am, fcm, fam, cam, fcam
b1
b1
c3
p1
a3
b1
m2
p2
m1
20Mineração de Padrões Frequentes Criando
Pattern-Bases Condicionais
21Geração de caminhos únicos na FP-tree
- Suponha que uma FP-tree T tenha um caminho único
P - O conjunto completo dos padrões frequentes de T
podem ser gerados através da enumeração de todas
as combinações dos sub-caminhos de P
Todos os padrões frequentes relacionados com m m,
fm, cm, am, fcm, fam, cam, fcam
f3
c3
a3
m-conditional FP-tree
22Por que o crescimento do padrões frequentes é
rápido?
- Estudos de performance mostram que
- O crescimento FP é uma ordem de magnetude mais
rápido que o Apriori - Motivos
- Não há geração ou teste de candidatos
- Estrutura de dados compacta
- Elimina iterações repetidas com o banco
23Iceberg Queries
- Icerberg query Computar agregações sobre um
atributo ou um conjunto de atributos somente para
aquelas com valor de agregação maior que um certo
limite - Exemplo
- select P.custID, P.itemID, sum(P.qty)
- from purchase P
- group by P.custID, P.itemID
- having sum(P.qty) gt 10
- Computar iceberg queries eficientemente com
Apriori - Primeiro, computar as menores dimensões
- Então computar as maiores dimensões somente
quando todas as menores estiverem acima do limite
24Regras de associação de multiplos níveis
- Itens sempre em hierarquias.
- Itens em níveis mais baixos são esperados como
tendo o support mais baixo - Regras dizendo respeito a itemsets de um
determinado nível são muito úteis - BDs transacionais podem ser codificados,
baseados em dimensões e níveis - Podemos explorar mineração de múltiplos níveis
compartilhada
25Minerando Regras de Associação em Grandes Bases
de Dados
- Minerando regras de associação
- Minerando regras de associação booleana
uni-dimensionais a partir de bancos transacionais - Minerando regras de associação multi-nível a
partir de bancos transacionais - Minerando regras de associação multi-dimencionais
a partir de bancos transacionais e data
warehouses - Da mineração de associações à análise de
correlação - Mineração de associações baseada em restrições
- Resumo
26Associações de Multiplos Níveis Suporte Uniforme
vs. Suporte Reduzido
- Suporte uniforme mesmo valor de suporte mínimo
para todos os níveis - Um limite de suporte mínimo. Não há necessidade
de examinar itemsets contendo qualquer item cujos
antecessores não tenham o mínimo suporte. - Itens de níveis baixos não ocorrem com muita
frequencia. Se o limite do suporte é - Muito alto ? perda de associações em níveis
baixos - Muito baixo ? gera muitas associações de
alto-nível - Suporte reduzido reduz o míni,mo suporte em
níveis mais baixos - Existem 4 estratégias de busca
- Independente nível-por-nível
- Filtragem de níveis cruzados por k-itemset
- Filtragem de níveis cruzados por item
- Filtragem controlada de níveis cruzados por item
27Suporte Uniforme
Mineração múltiplos níveis com suporte uniforme
Milk support 10
Nível 1 min_sup 5
2 Milk support 6
Skim Milk support 4
Nível 2 min_sup 5
28Suporte Reduzido
Mineração de multiplos níveis com suporte reduzido
Nível 1 min_sup 5
Milk support 10
2 Milk support 6
Skim Milk support 4
Nível 2 min_sup 3
29Associações de Multiplos Níveis Filtragem de
Redundâncias
- Algumas regras podem ser redundantes devido à
relações antecessoras entre itens. - Exemplo
- milk ? wheat bread support 8, confidence
70 - 2 milk ? wheat bread support 2, confidence
72 - Dizemos que a primeira regra é uma antecessora da
segunda. - Uma regra é redundante se seu suporte é próximo
do valor esperado, baseado na regra antecessora.
30Minerando Regras de Associação em Grandes Bases
de Dados
- Minerando regras de associação
- Minerando regras de associação booleana
uni-dimensionais a partir de bancos transacionais - Minerando regras de associação multi-nível a
partir de bancos transacionais - Minerando regras de associação multi-dimencionais
a partir de bancos transacionais e data
warehouses - Da mineração de associações à análise de
correlação - Mineração de associações baseada em restrições
31Associação Multi-Dimensional Conceitos
- Regras Uni-dimensionais ou Intra-dimensionais
- buys(X, milk) ? buys(X, bread)
- Regras Multi-dimensionais
- Regras e Associação Inter-dimensionais (sem
repetencia de predicados) - age(X,19-25) ? occupation(X,student) ?
buys(X,coke) - Regras e Associação hibrido-dimensionais
(repetencia de predicados) - age(X,19-25) ? buys(X, popcorn) ? buys(X,
coke) - Atributos Categoricos
- numero finito de possibilidade de valores, sem
ordenação. - Atributos Quantitativos
- numericos, com ordem de valores implicitos
32Técnicas para minerar Associações
Multi-Dimensionais
- Busca pelo conjunto mais frequente de
k-predicados - Exemplo age, occupation, buys é um conjunto de
3-predicados. - Técnicas podem ser categorizadas por como tratam
cada predicado. ex age. - 1. Usando discretização estática de atributos
quantitativos - Atributos quantitativos são discretizados
estaticamente usando conceitos hierárquicos
pré-definidos. - 2. Regras de associação quantitativas
- Atributos quantitativos são discretizados
dinamicamente em grupos baseados na distribuição
dos dados. - 3. Regras de associação baseados em distancia
- Processo de discretização dinâmica considerando a
distancia entre pontos de dados.
33Discretização estática de atributos quantitativos
- Discretização prévia na mineração usando
conceitos hierárquicos. - Valores numéricos são substituídos por intervalos
de valores (ranges). - Como em BDs relacionais, esta busca requer k
varreduras em suas tabelas, Cubos de dados são
preferíveis para mineração.
34Regras de Associação Quantitativas
- Atributos numéricos são dinamicamente
discretizados para satisfazer algum critério de
mineração. - como a confiança (confidence) ou a coesão
(compactness) das regras mineradas serem
maximizadas. - Regras de associação quantitativas 2-D Aquan1 ?
Aquan2 ? Acat - Exemplo
age(X,30-34) ? income(X,24K - 48K) ?
buys(X,high resolution TV)
35Uma abordagem - ARCS (Association Rule Clustering
System)
- Como o ARCS trabalha?
- 1. Particionar (Binning)
- 2. Encontrar conjuntos
- de predicados
- mais freqüentes
- 3. Clustering
- 4. Otimizar
36Minerando regras de associação baseadas em
distancia
- Métodos de Particionamento (Binning) não capturam
a semântica dos intervalos de dados - Particionamento baseado em distancia, criam
descretizações mais significantes considerando - densidade/numero de ponto em um intervalo
- coesão (closeness) dos pontos em um intervalo
37Minerando Regras de Associação em Grandes Bases
de Dados
- Minerando regras de associação
- Minerando regras de associação booleana
uni-dimensionais a partir de bancos transacionais - Minerando regras de associação multi-nível a
partir de bancos transacionais - Minerando regras de associação multi-dimencionais
a partir de bancos transacionais e data
warehouses - Da mineração de associações à análise de
correlação - Mineração de associações baseada em restrições
38Medidas de Interesse
- Medidas Objetivas
- suporte (support) e confidencia (confidence)
- Medidas subjetivas (Silberschatz Tuzhilin,
KDD95) - Uma regra (pattern) é interessante se
- ela é inesperada (unexpected) e/ou
- utilizável (actionable)
- Medidas subjetivas variam de usuário para
usuário, assim medidas objetivas baseadas na
estatística
39Critica ao Suporte e Confidencia
- Exemplo 1
- Entre 5000 estudantes
- 3000 jogam basquete
- 3750 comem cereal
- 2000 jogam basquete e comem cereal
- joga basquete ? come cereal 40, 66.7 é
equivocado porque a porcetagem total de
estudante que comem cereal é 75 que é maior que
66.7. - jogam basquete ? não come cereal 20, 33.3 é
bem mais preciso, embora com menor suporte
(support) e confidencia (confidence)
40Crítica ao Suporte e Confidência (Cont.)
- Exemplo 2
- X e Y positivamente correlacionado,
- X e Z, negativamente relacionando
- suporte e confidencia de
- XgtZ domina
- É necessária uma medida de dependência ou
correlação - P(BA)/P(B) é também chamada de lift da regra A
gt B
41Outra medida de interesse
- Interesse (correlação, lift)
- Colocando ambos P(A) e P(B) em consideração
- P(AB)P(B)P(A), se A e B são eventos
independentes - A e B são negativamente correlacionados, se o
valor e menor que 1 caso contrário A e B são
positivamente correlacionados
42Minerando Regras de Associação em Grandes Bases
de Dados
- Minerando regras de associação
- Minerando regras de associação booleana
uni-dimensionais a partir de bancos transacionais - Minerando regras de associação multi-nível a
partir de bancos transacionais - Minerando regras de associação multi-dimencionais
a partir de bancos transacionais e data
warehouses - Da mineração de associações à análise de
correlação - Mineração de associações baseada em restrições
43Mineração Baseada em Restrições
- Mineração é executada sob a orientação de varias
restrições do usuário. - Tipos de restrições que podem ser usadas na
mineração - Knowledge type constraint classificação,
associação, etc. - Data constraint SQL-like queries
- Find product pairs sold together in Vancouver in
Dec.98. - Dimension/level constraints
- in relevance to region, price, brand, customer
category. - Rule constraints
- small sales (price lt 10) triggers big sales
(sum gt 200). - Interestingness constraints
- strong rules (min_support ? 3, min_confidence ?
60).
44Regras de Restrição
- Dois tipos de regras de restrição
- Regra de restrição sintática (Rule form
constraints) meta-rule guided mining. - P(x, y) Q(x, w) takes(x, database
systems). - Regra de restrição por contexto (Rule content
constraint) constraint-based query optimization
(Ng, et al., SIGMOD98). - sum(LHS) lt 100 min(LHS) gt 20 count(LHS) gt 3
sum(RHS) gt 1000 - Restrições com 1-variável vs. 2-
- 1-var Uma restrição confinada somente a um lado
(Dir/Esq) da regras, ex. como mostrada acima. - 2-var Uma restrição confinada em ambos os lados.
- sum(LHS) lt min(RHS) max(RHS) lt 5 sum(LHS)
45Restrições Anti-monotonica and Monotonica
- Uma restrição Ca é anti-monotonica, caso um
conjunto S violar a restrição Ca, nenhum
super-conjunto de S viola a restrição. - Uma restrição Ca é monotonica, caso um conjunto S
satisfaça a restrição Ca, todo super-conjunto de
S satisfaz restrição. - Exemplos
- sum(S.Price) ? v é anti-monotonica
- sum(S.Price) ? v é monotonica
46Restrições Succinct
- Uma restrição Ca é succinct, caso seja possível
enumerar todos os conjuntos que satisfazem a
restrição. - Exemplo
- sum(S.Price ) ? v não é succinct
- min(S.Price ) ? v é succinct
47Restrições Convertiveis
- Restrições que podem variar de acordo com a
ordenamento dos itemset. - Ex. Tendo R um conjunto de itens
- Se o valores forem ordenados decrescentemente,
- I9, 8, 6, 4, 3, 1, Avg(S) ? v é monotonica
- Se o valores forem ordenados crescentemente,
- I1, 2, 4, 6, 8, 9, Avg(S) ? v é
anti-monotonica
48Relação entre categorias de restrições
Succinctness
Anti-monotonicity
Monotonicity
Convertible constraints
Inconvertible constraints
49Caracterização de restrições
Constraint S ? v, ? ? ?, ?, ? v ? S S ? V S
? V S ? V min(S) ? v min(S) ? v min(S) ? v max(S)
? v max(S) ? v max(S) ? v count(S) ? v count(S) ?
v count(S) ? v sum(S) ? v sum(S) ? v sum(S) ?
v avg(S) ? v, ? ? ?, ?, ? (frequent
constraint)
Anti-Monotonicity yes no no yes partly no yes part
ly yes no partly yes no partly yes no partly conve
rtible (yes)
Succinct Yes yes yes yes yes yes yes yes yes yes y
es weakly weakly weakly no no no no (no)