Upload
internet
View
107
Download
0
Embed Size (px)
Citation preview
LCM: na efficient algorithm for LCM: na efficient algorithm for enumerating frequent closed item setsenumerating frequent closed item sets
T. Uno, T. Asai, H. ArimuraT. Uno, T. Asai, H. Arimura
Apresentação: Luiz Henrique Longhi RossiApresentação: Luiz Henrique Longhi Rossi
DefiniçõesDefinições
E é o universo de todos os itens;E é o universo de todos os itens; X é um subconjunto de E.X é um subconjunto de E. R é o conjunto de transações sobre ER é o conjunto de transações sobre E R(X) = {t R(X) = {t R | X R | X t} será o conjunto t} será o conjunto
de transações incluindo X;de transações incluindo X; α é uma constante, α α é uma constante, α >> 0; 0; Um conjunto X é chamado de Um conjunto X é chamado de
freqüente se |R(X)| freqüente se |R(X)| >> α; α;
DefiniçõesDefinições
Se um conjunto freqüente está contido em Se um conjunto freqüente está contido em outro, este é dito outro, este é dito maximalmaximal
Se um conjunto de transações S Se um conjunto de transações S R, R, tomamos I(S) = tomamos I(S) = ∩∩TTSS T. T.
Se X satisfaz I(R(X)) = X, então é um Se X satisfaz I(R(X)) = X, então é um conjunto fechado.conjunto fechado.
F será o conjunto de todos conjuntos F será o conjunto de todos conjuntos freqüentesfreqüentes
C será o conjunto de todos conjuntos C será o conjunto de todos conjuntos freqüentes fechadosfreqüentes fechados
CaracterísticaCaracterística
Algoritmo híbridoAlgoritmo híbrido• Em um momento das iterações opta, Em um momento das iterações opta,
baseado em estimativas, por um ou por baseado em estimativas, por um ou por outra técnica para utilizar algoritmos outra técnica para utilizar algoritmos para dados esparsos ou densos;para dados esparsos ou densos;
Enumerando Conjuntos Fechados Enumerando Conjuntos Fechados FreqüentesFreqüentes
É construída uma arvore É construída uma arvore TRIETRIE É feita uma busca em profundidade, É feita uma busca em profundidade,
enumera-se assim todos os conjuntos enumera-se assim todos os conjuntos fechados freqüentesfechados freqüentes
Algoritmo LCMAlgoritmo LCM Para todos conjuntos maiores que o conjunto i Para todos conjuntos maiores que o conjunto i
(anterior)(anterior)• Se o conjunto for freqüente E igual a intersecção Se o conjunto for freqüente E igual a intersecção
de todas as transações envolvendo ele se chama de todas as transações envolvendo ele se chama recursivamente o LCMrecursivamente o LCM
For each i > i(X)For each i > i(X) If X[i] is frequent and X[i] = I(T(X[i]) thenIf X[i] is frequent and X[i] = I(T(X[i]) then
• Call LCM (X[i])Call LCM (X[i]) End forEnd for
Algorítmo LCMAlgorítmo LCM
X[i] são todos os conjuntos que X[i] são todos os conjuntos que contém X e contém i, logo X não contém X e contém i, logo X não necessariamente é um prefixo de necessariamente é um prefixo de X[i].X[i].
Exemplo, sup = 3Exemplo, sup = 3
A: 1,2,3,8,5A: 1,2,3,8,5 B: 1,2,4,5B: 1,2,4,5 C: 1,2,3,8,9C: 1,2,3,8,9 D: 1,2,3,8,10D: 1,2,3,8,10 E: 1,2,4,9E: 1,2,4,9 F: 1,2,5,8F: 1,2,5,8
1;1; 1,2 é freqüente?1,2 é freqüente?
• SimSim T({1,2}) = {A, B, T({1,2}) = {A, B,
C, D, E, F}C, D, E, F} I(T({1,2})) = 1,2I(T({1,2})) = 1,2 É igual?É igual?
• Sim, então chama Sim, então chama recursivamenterecursivamente
Exemplo, sup = 3Exemplo, sup = 3
A: 1,2,3,8,5A: 1,2,3,8,5 B: 1,2,4,5B: 1,2,4,5 C: 1,2,3,8,9C: 1,2,3,8,9 D: 1,2,3,8,10D: 1,2,3,8,10 E: 1,2,4,9E: 1,2,4,9 F: 1,2,5,8F: 1,2,5,8
1,2;1,2; 1,2,3 é frequente?1,2,3 é frequente?
• SimSim T({1,2,3}) = {A, C, D}T({1,2,3}) = {A, C, D} I(T({1,2,3}) = 1,2,3,8I(T({1,2,3}) = 1,2,3,8 É igual?É igual?
• Não, então não chama Não, então não chama recursivamenterecursivamente
ExemploExemplo
Então como que ele identificará que o Então como que ele identificará que o conjunto 1,2,3,8 será fechado freqüente?conjunto 1,2,3,8 será fechado freqüente?• Por causa do iterador! A verificação é feita Por causa do iterador! A verificação é feita
como se os dados estivessem em uma trie, como se os dados estivessem em uma trie, logo, ele vai varrer aumentando o índice i, que logo, ele vai varrer aumentando o índice i, que compreende todos os subconjuntos (percorre compreende todos os subconjuntos (percorre em profundidade)em profundidade)
Percorre toda a árvore em tempo linearPercorre toda a árvore em tempo linear• Para realizar a operação I(X) não teria que Para realizar a operação I(X) não teria que
percorrer as transações envolvendo X?percorrer as transações envolvendo X?
VantagensVantagens
Outros algoritmos ao gerarem a Outros algoritmos ao gerarem a árvore adicionam todos os conjuntos árvore adicionam todos os conjuntos freqüentes, adicionando assim, freqüentes, adicionando assim, muitos que serão “podados”, como o muitos que serão “podados”, como o LCM só adiciona conjuntos fechados LCM só adiciona conjuntos fechados na árvore, poupa processamento;na árvore, poupa processamento;
Afirma também que cada iteração Afirma também que cada iteração tem menos processamento.tem menos processamento.
VantagensVantagens
Além do algoritmo base, apresenta Além do algoritmo base, apresenta algumas otimizaçõesalgumas otimizações• Ocurrence Deliver:Ocurrence Deliver:
Reduz o tempo para construir T(X[i])Reduz o tempo para construir T(X[i]) Normalmente é obtido a partir de T(X) Normalmente é obtido a partir de T(X)
percorrendo todas transações que não percorrendo todas transações que não envolvem ienvolvem i
Ao invés disso, em quanto se obtém T(X) Ao invés disso, em quanto se obtém T(X) simultaneamente é feita a lista J[i] = T(X[i])simultaneamente é feita a lista J[i] = T(X[i])
Além disso não precisam ser feitas Além disso não precisam ser feitas chamadas recursivas se J[i] for vaziochamadas recursivas se J[i] for vazio
VantagensVantagens
Ocurrence DeliverOcurrence Deliver• Otimiza em casos que T(X[i]) é bem menor que Otimiza em casos que T(X[i]) é bem menor que
T(X);T(X);• Pode levar até 1/10 do tempo em alguns casos. Pode levar até 1/10 do tempo em alguns casos.
Right-First SweepRight-First Sweep• Como cada chamada recursiva vai ter um Como cada chamada recursiva vai ter um
tamanho menor ou igual que a chamada tamanho menor ou igual que a chamada anterior pode-se alocar a memória no tamanho anterior pode-se alocar a memória no tamanho total de J de uma vez só como variável global.total de J de uma vez só como variável global.
VantagensVantagens
DiffsetsDiffsets• No caso do |T(X[i])| ser parecido com |No caso do |T(X[i])| ser parecido com |
T(X)| é usada essa técnicaT(X)| é usada essa técnica• Está definida em uma artigo completo Está definida em uma artigo completo
nas referênciasnas referências• Diz-se que reduz em até 1/100 em Diz-se que reduz em até 1/100 em
algumas base de dadosalgumas base de dados
VantagensVantagens
Computação hibridaComputação hibrida• Usar Ocurrence Deliver em casos em Usar Ocurrence Deliver em casos em
que |T(X[i])| é bem menor que |T(X)|;que |T(X[i])| é bem menor que |T(X)|;• Usar Diffsets em casos em que |T(X[i])| Usar Diffsets em casos em que |T(X[i])|
é bem próximo a |T(X)|é bem próximo a |T(X)|• Como decidir?Como decidir?
EstatísticaEstatística
VantagensVantagens
AA((XX) = Σ) = Σii |T |T ((X ∪ {i}X ∪ {i}))||• Tamanho total dos filhos de XTamanho total dos filhos de X
BB((XX) = ) = ΣΣi:X∪{i}∈ Fi:X∪{i}∈ F (|T (|T ((XX))| − |T | − |T ((X ∪ {i}X ∪ {i}))||))• Tamanho de X menos o tamanho dos filhosTamanho de X menos o tamanho dos filhos
Para uma constante c usa-se o Ocurrence Para uma constante c usa-se o Ocurrence deliver se A(X) < c.B(X)deliver se A(X) < c.B(X)
A decisão é feita apenas para os filhos A decisão é feita apenas para os filhos imediatos da raiz desde que não tome imediatos da raiz desde que não tome muito tempomuito tempo
VantagensVantagens
• A computação hibrida, reduz o tempo em até A computação hibrida, reduz o tempo em até 1/31/3
Verificação de “fechabilidade” (no Verificação de “fechabilidade” (no ocurrence deliver)ocurrence deliver)• Por definição um conjunto candidato não vai Por definição um conjunto candidato não vai
ser fechado sse existir um valor que ocorre em ser fechado sse existir um valor que ocorre em todas transações que outro valortodas transações que outro valor
• Então, é testado durante o algoritmo se a Então, é testado durante o algoritmo se a existe um j que pertence a todas as transaçõesexiste um j que pertence a todas as transações
• Não é feito no diffset porque o conjunto seria Não é feito no diffset porque o conjunto seria muito grandemuito grande
ResultadosResultados
Bases de dadosBases de dados
DatasetDataset #items#items #Tran#Transs
Minsup (%)Minsup (%)
BMS-Web-View1BMS-Web-View1
BMS-Web-View2BMS-Web-View2
BMS-POSBMS-POS
T10I4D100KT10I4D100K
T40I10D100KT40I10D100K
pumsbpumsb
pumsb starpumsb star
mushroommushroom
connectconnect
chesschess
497497
3,3403,340
1,6571,657
1,0001,000
1,0001,000
7,1177,117
7,1177,117
120120
130130
7676
59,60259,602
77,51277,512
517,255517,255
100,000100,000
100,000100,000
49,04649,046
49,04649,046
8,1248,124
67,57767,577
31963196
0.1–0.010.1–0.01
0.1–0.010.1–0.01
0.1–0.010.1–0.01
0.15–0.0250.15–0.025
2–0.52–0.5
95–6095–60
50–1050–10
20–0.120–0.1
95–4095–40
90–3090–30
ResultadosResultados
LCMfreq, LCM, LCMmax, FPgrowth, LCMfreq, LCM, LCMmax, FPgrowth, eclat, apriori, mafia-mfieclat, apriori, mafia-mfi• Em todas as 9 base de dados diferentesEm todas as 9 base de dados diferentes