CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets Jian Pei, Jiawei Han e Runying Mao Apresentação preparada por Alexandre Lorenzatti
Apr 17, 2015
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Jian Pei, Jiawei Han e Runying Mao
Apresentação preparada por Alexandre Lorenzatti
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Closed itemsets
Frequent Closed itemsets
Artigo
Definição do problema
Extração dos FCIs
Especificação formal
Otimizações
Escalabilidade
PerformanceBancos utilizados e a comparação com CHARM e A-close
Conclusões
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Closed itemsets
Um conjunto de itens X={x1, x2, x3, x4} será closed (fechado) se nenhum de seus super-conjuntos tiver o mesmo suporte, ou seja:
{a c d : 2}, não é um closed itemset, pois:
{a c d f : 2}, que é um super-conjunto, tem suporte iguale é mais interessante de ser analisado.
o porquê disso, gerando as regras associativasa -> {c d} com suporte = 2
a -> {c d f} com suporte = 2
mas, e se?
1 | a c d e f2 | a b e3 | c e f4 | a c d f5 | c e f
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Closed itemsets
Um conjunto de itens X={x1, x2, x3, x4} será closed (fechado) se nenhum de seus super-conjuntos tiver o mesmo suporte, ou seja:
{a c d : 2}, não é um closed itemset, pois:
{a c d f : 2}, que é um super-conjunto, tem suporte iguale é mais interessante de ser analisado.
o porquê disso, gerando as regras associativasa -> {c d} com suporte = 2
a -> {c d f} com suporte = 2
mas, e se?
agora:
{a c d : 3}, será um closed itemset{a c d f : 2}, será outro closed itemset
1 | a c d e f2 | a b e3 | c e f4 | a c d f5 | c e f6 | a c d
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Closed itemsets
Um conjunto de itens X={x1, x2, x3, x4} será closed (fechado) se nenhum de seus super-conjuntos tiver o mesmo suporte, ou seja:
princípio: todos os sub-conjuntos de um conjunto freqüente são freqüentes. todos os super-conjuntos de um conjunto infreqüente, são
infreqüentes.
{a c d : 2}, não é um closed itemset, pois:
{a c d f : 2}, que é um super-conjunto, tem suporte iguale é mais interessante de ser analisado.
o porquê disso, gerando as regras associativasa -> {c d} com suporte = 2
a -> {c d f} com suporte = 2
1 | a c d e f2 | a b e3 | c e f4 | a c d f5 | c e f
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Frequent Closed itemsets (FCI)
Um conjunto de itens X={x1, x2, x3, x4} será considerado um frequent closed itemset se ele for fechado e se sup(X) >= min_sup.
1 | a c d e f2 | a b e3 | c e f4 | a c d f5 | c e f
min_sup = 3
{a c d : 3}, será um frequent closed itemset
{a c d f : 2}, NÃO será um frequent closed itemset
caso min_sup = 2, ambos seriam FCI
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Frequent Closed itemsets (FCI)
Um conjunto de itens X={x1, x2, x3, x4} será considerado um frequent closed itemset se ele for fechado e se sup(X) >= min_sup.
A importância de se encontrar FCIs é a grande redução do número de regras redundantes geradas.
1 | a c d e f2 | a b e3 | c e f4 | a c d f5 | c e f
min_sup = 3
{a c d : 3}, será um frequent closed itemset
{a c d f : 2}, NÃO será um frequent closed itemset
caso min_sup = 2, ambos seriam FCI
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Artigo
FCIs, mesmo poder de mineração que os FI.
A proposta:
extensão do FP-growth
redução do espaço de busca com a utilização dos FCIs
mecanismo de projeção para a mineração de grandes BDs
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Definição do problema
Mineração de regras de associação dividida em duas etapas:
Encontrar os Frequent Itemsets
Para cada FI gerar as as regras de associação
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Definição do problema
Mineração de regras de associação dividida em duas etapas:
Encontrar os Frequent Itemsets
Para cada FI gerar as as regras de associação
PROBLEMÁTICA: geração de muitas regras, em muitos casos, redundantes
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Definição do problema
Mineração de regras de associação dividida em duas etapas:
Encontrar os Frequent Itemsets
Para cada FI gerar as as regras de associação
PROBLEMÁTICA: geração de muitas regras, em muitos casos, redundantes
Mineração de regras de associação utilizando apenas os FCIs (2 etapas também):
20 FIs porém, somente 6 são FCI:{a c d f}, {c e f}, {a e}, {c f}, {a}, {e}
Gerar regras de associação utilizando apenas FCIs:
c f -> a d (2, 50%) a -> c d f (2, 67%)e -> a (2, 50%) a -> e (2, 67%)e -> c f (3, 75%) c f -> e (3, 75%)
1 | a c d e f2 | a b e3 | c e f4 | a c d f5 | c e f
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Extração dos FCIs
Encontrar a lista de itens freqüentes f_list com min_sup=2:
c: 4, e: 4,f: 4,a: 3,d: 2
A base de transações ordenada pelo suporte e que atendem min_sup=2
1 | c e f a d2 | e a3 | c e f4 | c f a d5 | c e f
Dividir o espaço de busca criando os chamados BDs condicionais (TDB|x)todos os FCIs são divididos em 5 sub-conjuntos de acordo com f_list e
de acordo com as regras:sub-conj. que contém {d}sub-conj. que contém {a} mas não {d}sub-conj. que contém {f} mas não {a} e {d}sub-conj. que contém {e} mas não {f}, {a} nem {d}sub-conj. que contém apenas {c}
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Extração dos FCIs (cont.)
Encontrar sub-conjuntos nos FCIsEncontrar FCIs que contenham {d} criando o TDB|d
{c e f a}, {c f a} -> FCI = {c f a : 2}, pois sup(d) = 2
assim {c f a} sempre apareceu junto com {d}, então:
{c f a d} : 2 é um FCI
Encontrar FCIs que contenham {a} mas que não contenham {d}, criando o TDB|a
{c e f}, {e} , {c f} mas como sup(a) = 3 somente {a} é um FCI
assim entra-se recursivamente para encontrar o restante de FCIs contendo {a} mas não {d}
monta-se uma sub-lista de itens freqüentes do TDB|a, que será:
f_list_a= c: 2, e: 2, f: 2
1 | c e f a d2 | e a3 | c e f4 | c f a d5 | c e f
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Extração dos FCIs (cont.)
Encontrar sub-conjuntos nos FCIsDe acordo com f_list_a criam-se 3 sub-conjuntos que contenham {a} mas não {d}
{a f}, {a e}, {a c} todos com sup=2
TDB| f a = {a f} tem suporte igual a {a c d f} e é sub-conjunto deste, não é FCITDB| c a = {a c} tem suporte igual a {a c d f} e é sub-conjunto deste,
não é FCITDB| e a = {c} que não atende o suporte, então {e a : 2} é um FCI
Voltando da recursão e continuando os passos em f_list
Continua-se fazendo para o TDB|f, TBD|e e TDB|c
Ao final, obteve-se os seguintes FCIs:
{acdf: 2}, {a: 3}, {ae: 2}, {cf: 4}, {cef: 3}, {e: 4}
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Especificação formal
Especificação formal mostrando que o processo de mineração dos FCIs é completo e correto
Otimizações
Otimização 1 : FP-trees
Otimização 2: Remover os itens que aparecem em todas transações dos BDs condicionais
Otimização 3: extrair FCIs diretamente da FP-tree
Otimização 4: poda na busca de FCIs
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Otimizações (cont.)
Otimização 1: Comprimir as informações do banco transacional e dos bancos condicionais em FP-trees
Transações semelhantes terão um caminho semelhante na FP-tree
Os TDB|x podem ser derivados a partir de uma FP-tree já que múltiplas transações podem dividir um mesmo caminho da árvore
FP-tree criada a partir do banco: root
C : 4
E : 3
F : 3
A : 1
D : 1
F : 1
A : 1
D : 1
E : 3
A : 1
1 | c e f a d2 | e a3 | c e f4 | c f a d5 | c e f
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Otimizações (cont.)
Otimização 1 (cont.):
TDB|d : {cefa}, {cfa}
TDB|a: {cef}, {cf}, {e}
TDB|f: {ce},{c}
TDB|e: {c}
TDB|c: {c}
root
C : 4
E : 3
F : 3
A : 1
D : 1
F : 1
A : 1
D : 1
E : 3
A : 1
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Otimizações (cont.)
Otimização 2: Remover os itens que aparecem em todas transações dos BDs condicionais
Ex:BD condicional de d:
{c e f a}
{c f a}
{c f a} são comuns, assim {c f a d} é um FCI se não for sub- conjunto de um FCI com suporte igual
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Otimizações (cont.)
Otimização 3: extrair FCIs diretamente da FP-tree criada a partir de um BD condicional e que possua apenas um ramo
Ex.:FP-tree gerada a partir do BD condicional de {f}, TDB|f: {ce},{c}
root | c: 4 | e: 3
| f: 3
Assim encontramos os FCIs:
{c f : 4}
{c e f : 3}
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Otimizações (cont.)
Otimização 4: poda na busca de FCIs
Dois conj. freqüentes X e Y. Se Y contiver os elementos de X e Y for um FCI não é necessário procurar FCIs no BD condicional de X
Ex.:BD condicional de {c}, pois {c} é um sub-conjunto de {f c} o qual já é
um FCI
TDB|c = {c}
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Escalabilidade
Quando um banco de dados é grande fica inviável manter um FP-tree em memória
Solução simples, porém bastante custosa, é expandir todos TDB|x de um nó pai
Ao invés de copiar um transação para todos TDB|x ela é copiada apenas para o último item de f_list que a contém
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Escalabilidade
Ex.:{d} é o último de f_list que contém a transação {c e f a d} então ela é
copiada para TDB|d. Depois de processado o TDB|d a transação é transferida para o próximo TDB|x, no caso, TDB|a
Com essa abordagem o CLOSET consegue trabalhar sem a construção de uma FP-tree nas primeiras iterações, assim, as FP-trees são construídas
quando os BDs condicionais cabem em memória
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Performance
Os bancos de dados
T25|20D100K 10K itens: dados esparsos, maioria dos dos FI são FCI
Connect-4: 67557 transações cada uma com 43 itens, longos FIs
pumsb: 49046 transações cada uma com 74 itens
Redução do número de FIs para FCIs no Connect-4
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Performance (cont.)
Comparação
A-close: é baseado no Apriori mas, com algumas melhorias
CHARM: explora o formato de dados verticais, buscando FCIs através de intersecções entre os dados das transações
Experimentos feitos em um Pentium 233MHz, 128MB RAM, Windows NT, Visual C++ 6.0
CLOSET se mostrou melhor principalmente em bancos densos como o Connect-4
CLOSET usou 1690 seg. para encontrar 130101 FCI com sup=50% enquanto que o A-close nem encontrou resultados com sup=80%
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Conclusões
CLOSET se mostrou eficiente e escalável na busca por FCIs em grandes BDs
Minerar uma grande quantidade de transações gerando os conjuntos freqüentes é bastante custoso e criam-se muitas regras associativas
Minerar FCIs tem o mesmo poder de minerar todos os conjuntos freqüentes mas, gerando uma quantidade bem menor de regras associativas
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Jian Pei, Jiawei Han e Runying Mao
Apresentação preparada por Alexandre Lorenzatti