210 likes | 352 Views
LCM: na efficient algorithm for enumerating frequent closed item sets T. Uno, T. Asai, H. Arimura. Apresentação: Luiz Henrique Longhi Rossi. Definições. E é o universo de todos os itens; X é um subconjunto de E. R é o conjunto de transações sobre E
E N D
LCM: na efficient algorithm for enumerating frequent closed item setsT. Uno, T. Asai, H. Arimura Apresentação: Luiz Henrique Longhi Rossi
Definições • E é o universo de todos os itens; • X é um subconjunto de E. • R é o conjunto de transações sobre E • R(X) = {t Î R | X Í t} será o conjunto de transações incluindo X; • α é uma constante, α > 0; • Um conjunto X é chamado de freqüente se |R(X)| > α;
Definições • Se um conjunto freqüente está contido em outro, este é dito maximal • Se um conjunto de transações S Í R, tomamos I(S) = ∩TÎS T. • Se X satisfaz I(R(X)) = X, então é um conjunto fechado. • F será o conjunto de todos conjuntos freqüentes • C será o conjunto de todos conjuntos freqüentes fechados
Característica • Algoritmo híbrido • Em um momento das iterações opta, baseado em estimativas, por um ou por outra técnica para utilizar algoritmos para dados esparsos ou densos;
Enumerando Conjuntos Fechados Freqüentes • É construída uma arvore TRIE • É feita uma busca em profundidade, enumera-se assim todos os conjuntos fechados freqüentes
Algoritmo LCM • Para todos conjuntos maiores que o conjunto i (anterior) • Se o conjunto for freqüente E igual a intersecção de todas as transações envolvendo ele se chama recursivamente o LCM • For each i > i(X) • If X[i] is frequent and X[i] = I(T(X[i]) then • Call LCM (X[i]) • End for
Algorítmo LCM • X[i] são todos os conjuntos que contém X e contém i, logo X não necessariamente é um prefixo de X[i].
A: 1,2,3,8,5 B: 1,2,4,5 C: 1,2,3,8,9 D: 1,2,3,8,10 E: 1,2,4,9 F: 1,2,5,8 1; 1,2 é freqüente? Sim T({1,2}) = {A, B, C, D, E, F} I(T({1,2})) = 1,2 É igual? Sim, então chama recursivamente Exemplo, sup = 3
A: 1,2,3,8,5 B: 1,2,4,5 C: 1,2,3,8,9 D: 1,2,3,8,10 E: 1,2,4,9 F: 1,2,5,8 1,2; 1,2,3 é frequente? Sim T({1,2,3}) = {A, C, D} I(T({1,2,3}) = 1,2,3,8 É igual? Não, então não chama recursivamente Exemplo, sup = 3
Exemplo • Então como que ele identificará que o conjunto 1,2,3,8 será fechado freqüente? • Por causa do iterador! A verificação é feita como se os dados estivessem em uma trie, logo, ele vai varrer aumentando o índice i, que compreende todos os subconjuntos (percorre em profundidade) • Percorre toda a árvore em tempo linear • Para realizar a operação I(X) não teria que percorrer as transações envolvendo X?
Vantagens • Outros algoritmos ao gerarem a árvore adicionam todos os conjuntos freqüentes, adicionando assim, muitos que serão “podados”, como o LCM só adiciona conjuntos fechados na árvore, poupa processamento; • Afirma também que cada iteração tem menos processamento.
Vantagens • Além do algoritmo base, apresenta algumas otimizações • Ocurrence Deliver: • Reduz o tempo para construir T(X[i]) • Normalmente é obtido a partir de T(X) percorrendo todas transações que não envolvem i • Ao invés disso, em quanto se obtém T(X) simultaneamente é feita a lista J[i] = T(X[i]) • Além disso não precisam ser feitas chamadas recursivas se J[i] for vazio
Vantagens • Ocurrence Deliver • Otimiza em casos que T(X[i]) é bem menor que T(X); • Pode levar até 1/10 do tempo em alguns casos. • Right-First Sweep • Como cada chamada recursiva vai ter um tamanho menor ou igual que a chamada anterior pode-se alocar a memória no tamanho total de J de uma vez só como variável global.
Vantagens • Diffsets • No caso do |T(X[i])| ser parecido com |T(X)| é usada essa técnica • Está definida em uma artigo completo nas referências • Diz-se que reduz em até 1/100 em algumas base de dados
Vantagens • Computação hibrida • Usar Ocurrence Deliver em casos em que |T(X[i])| é bem menor que |T(X)|; • Usar Diffsets em casos em que |T(X[i])| é bem próximo a |T(X)| • Como decidir? • Estatística
Vantagens • A(X) = Σi |T (X ∪ {i})| • Tamanho total dos filhos de X • B(X) = Σi:X∪{i}∈ F (|T (X)| − |T (X ∪ {i})|) • Tamanho de X menos o tamanho dos filhos • Para uma constante c usa-se o Ocurrence deliver se A(X) < c.B(X) • A decisão é feita apenas para os filhos imediatos da raiz desde que não tome muito tempo
Vantagens • A computação hibrida, reduz o tempo em até 1/3 • Verificação de “fechabilidade” (no ocurrence deliver) • Por definição um conjunto candidato não vai ser fechado sse existir um valor que ocorre em todas transações que outro valor • Então, é testado durante o algoritmo se a existe um j que pertence a todas as transações • Não é feito no diffset porque o conjunto seria muito grande
Resultados • Bases de dados
Resultados • LCMfreq, LCM, LCMmax, FPgrowth, eclat, apriori, mafia-mfi • Em todas as 9 base de dados diferentes