Processamento de Dados Massivos/Projeto e implementação de aplicações Big Data/Classificação associativa incremental (LAC): diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Linha 147:
O foco deste trabalho é maximizar a utilização do Cache de Regras de Associação utilizado pelo LAC. Sendo assim, os experimentos realizados visam extrair métricas que comprovem ou não a maximização do uso deste recurso. As métricas utilizadas para medir quanto o Cache é utilizado são a quantidade de Misses e Hits. A primeira mede quantas regras novas tiveram que ser extraídas, uma vez que o padrão requerido não foi encontrado. Por outro lado, a segunda métrica mede a quantidade de regras que foram utilizadas do Cache.
 
Com a finalidade de medir a quantidade de Misses e Hits submetemos o ''Distributed'' LAC a trêsquatro senários diferentes baseados na primeira fase de execução do algoritmo, o Particionamento de Dados:
 
# Particionamento Aleatório: Este método consiste em particionar de forma aleatória o teste em N grupos de tamanho iguais. A principal vantagem deste método é que cada mapper processa uma quantidade de instancias iguais, desta forma distribuindo melhor a carga. Contudo este método não leva em conta a cache e pode acabar gerando um grande número de misses na cache;
# Particionamento por Similaridade: Este método consiste na separação do conjunto de testes por meio de algoritmos de clustering. A principal vantagem deste método é que instancias semelhantes gerar regras semelhantes e portanto maximizar o uso da cache. Porém este método pode gerar clusteres desbalanceados o que pode acabar se tornando um gargalo;
# Particionamento por Similaridade com Cortes: Este método consiste na separação do conjunto de testes por meio de duas etapas. Na primeira etapa separamos o conjunto de testes utilizando algoritmos de clustering. Na segunda etapa realizamos um processo de corte nos grupos grandes de forma a evitar ''overhead'' de rede para transmitir grupos muito grandes.;
# Particionamento Temporal: A coleção de dados foi obtida através da API de Streams do Twitter. Desta forma os dados naturalmente estão agrupados temporalmente, ou seja, tweets de um mesmo intervalo de tempo possuem um vocabulário próximo. Assim, os dados de teste serão ordenados temporalmente e divididos em conjuntos de tamanhos iguais;
 
Através destes métodos de particionamento espera-se comprovar que a quantidade de Misses no Particionamento Aleatório (1) é maior do que nos Particionamentos por Similaridade (2) e (3), pois as instâncias processadas em (1) poderão necessitar de conjuntos de regras discrepantes, obrigando a extração frequente de regras. Assim como os particionamentos (2) e (3), ao processar o particionamento (4) espera-se conjuntos mais coesos.
 
ORealizamos dois conjuntos de experimentos, em que o primeiro utilizamos o método de experimentação utilizado é o 10-''folds-cross-validation'', quepara consistemcomparar deentre criar 10os conjuntos diferentes departicionamentos treino(1), e(2), teste(3). Para o particionamento (1) o conjunto de teste é separado aleatóriamente na função Map. Os particionamentos (2) e (3) é feito o agrupamento no conjunto de teste e gerado um arquivo para cada grupo. No caso do particionamento (3) os grupos grandes são divididos em grupos menores. Cada um desses grupos é então carregado e processado em Maps diferentes.
 
No segundo conjunto de experimentos comparamos o particionamento (1) e (4) e optamos por criar conjuntos de treino com 60% da base e teste com 40%. Foram criados 5 conjuntos utilizando esta metodologia.
 
=== Resultados ===