Exercitando a Análise e Escrita de Experimentos Vania Bogorny (material baseado no Livro de Justin Zobel e prof Mirella Moura Moro) Partes de um experimento • Configuração. Como foi preparado o experimento • Parâmetros de execução do experimento para possível reprodução do mesmo • Resultados. É preciso de detalhes específicos dos resultados • Análise. Se for uma pesquisa quantitativa comente os resultados com base em dados estatísticos Interpretaçao dos experimentos • A sua interpretação e compreensão dos experimentos é tão importante quanto os resultados propriamente ditos – Ao escrever o resultado de um experimento, não apenas compile listas de figuras ou seqüência de gráficos. Analise os resultados e explique o seu significado, selecionando resultados típicos e importantes , explicando porque eles são significativos – Mostre porque os resultados comprovam ou não a sua hipótese • Experimentos só tem valor se forem cuidadosamente descritos, facilmente verificáveis e reproduzíveis Descrevendo um experimento • Os resultados de um experimento precisam ser descritos de forma qualitativa e quantitativa. – Dados quantitativos são aqueles que se expressam de forma numérica, como percentagens e estatísticas. – Exemplo: o algoritmo proposto obteve uma redução de 50% no tempo de processamento em relação a abordagens existentes. – Dados qualitativos são derivados de uma questão ampla, e se manifestam sob a forma de respostas descritivas dos participantes do estudo. – Exemplo: O tempo de processamento reduziu porque o método proposto faz menos acessos a disco, possui uma chave de busca direta e processa a parte x do algoritmo em memória ..... • Certifique-se de que os resultados sejam exibidos tanto graficamente como elaborados em uma descrição detalhada. Descrevendo um experimento: • Comece com um resumo dos experimentos: o que é medido, o que não é, por que, … • Adicione um parágrafo com o modelo de simulação ou a infraestrutura das medições (configuração do sistema, tipo de máquinas usadas, linguagens, …). Apresente os resultados dos experimentos: • Use um subtítulo (em negrito) para diferenciar experimentos (avaliando tamanho da entrada, variando a quantidade de consultas, usando dados sintéticos, usando dados reais, …). Onde foi executado O que é Exemplo I (objetivo é ganhar performance ) medido • • In this section, we present a performance comparison of FP-growth with the classical frequent pattern mining algorithm Apriori, and a recently proposed ecient method TreeProjection. All the experiments are performed on a 450- MHz Pentium PC machine with 128 megabytes main memory, running on Microsoft Windows/NT. All the programs are written in Microsoft/Visual C++6.0. Notice that we do not directly compare our absolute number of runtime with those in some published reports running on the RISC workstations because diferent machine architectures may difer greatly on the absolute runtime for the same algorithms. Instead, we implement their algorithms to the best of our knowledge based on the published reports on the same machine and compare in the same running environment. Please also note that run time used here means the total execution time, i.e., the period between input and output, instead of CPU time measured in the experiments in some literature. Also, all reports on the runtime of FP-growth include the time of constructing FP-trees from the original databases. The synthetic data sets which we used for our experiments were generated using the procedure described in [3]. We report experimental results on two data sets. The first one is T25:I10:D10K with 1K items, which is denoted as D1. …. Fonte (Han et al 2000) - Mining Frequent Patterns without Candidate Generation Em que linguagem foi implementado Quais dados foram usados Exemplo II (objetivo é ganhar em performance) • To assess the relative performance of the algorithms for discovering large itemsets, we performed several experiments on an IBM RS/6000 530H workstation with a CPU clock rate of 33 MHz, 64 MB of main memory, and running AIX 3.2. The data resided in the AIX le system and was stored on a 2GB SCSI 3.5" drive, with measured sequential throughput of about 2 MB/second. We first give an overview of the AIS [4] and SETM [13] algorithms against which we compare the performance of the Apriori and AprioriTid algorithms. We then describe the synthetic datasets used in the performance evaluation and show the performance results. Finally, we describe how the best performance features of Apriori and AprioriTid can be combined into an AprioriHybrid algorithm and demonstrate its scale-up properties. • Fonte (Agrawal et al 1994) - Fast Algorithms for Mining Association Rules Exemplo III (objetivo é descobrir um tipo novo de padrão) • The goal of this section is to evaluate the proposed algorithm under different points of view. First, we quantitatively test the effectiveness of the algorithm by analyzing the ability to correctly detect expected avoidance behaviors. To this end we use an ad-hoc annotated dataset, our ground truth, created for the purposes of this work (Section 6.1). Second, we compare our approach with the one presented in [11]. The work [11], as pointed out in Section 2, is the only work dealing with avoidance detection between moving objects we are aware of (Section 6.2). Third, we assess the ability of the algorithm in highlighting interesting and previously unknown patterns emerging from avoidance behaviors when using datasets for which no prior knowledge related to avoidance behaviors is available (Section 6.3) • Fonte: Lettich et al 2015 - Detecting Avoidance Behaviors Between Moving Object Trajectories Exemplo III (continuação) • We exploit a ground truth of annotated trajectories, explicitly created for this work, whose data derive from real GPS observations of moving objects collected in Florianopolis and Venice. This public dataset1 contains an overall amount of 86 trajectories representing pedestrian movements, for a total of 7,834 samples and an average sampling rate of one second. Although this dataset is not large, it is sufficient to validate the proposed method. • Fonte: Lettich et al 2015 - Detecting Avoidance Behaviors Between Moving Object Trajectories Descrevendo o experimento • Todos os gráficos e diagramas devem ter um número e um título. – Por exemplo, se estiver testando o efeito do fertilizante no crescimento das plantas, você precisará de um gráfico mostrando a média de crescimento das plantas fertilizadas e das que cresceram naturalmente. • Você também deve descrever o resultado. – Por exemplo, "as plantas que receberam uma concentração de 1ml de fertilizante cresceram uma média de 4 cm a mais do que aqueles que não foram fertilizadas". • Explique o que é representado em cada eixo de um gráfico • cada gráfico deve ter uma razão clara para aparecer no seu artigo Descrevendo um experimento: • explique cada gráfico: os eixos, o que o gráfico mostra, qual é a tendência, por que a tendência aparece, por que um algoritmo apresenta melhores resultados que outro, … • cada gráfico deve ser auto-contido: legendas devem ser legíveis e compreensíveis. • encerre a seção com comentários finais, discussões, explicações adicionais. • Como sugestão para organização da seção de experimentos considere a seguinte exemplo de (ZHANG @ SIGMOD 1996): – 6. Performance studies 6.1 Analysis 6.2 Synthetic Dataset Generator 6.3 Parameters and Default Setting 6.4 Base Workload Performance 6.5 Sensitivity to Parameters 6.6 Time Scalability 6.7 Comparison of BIRCH and CLARANS 6.8 Application to Real Datasets Exemplo de gráfico com tendência Exemplo de Gráfico Atenção a Escala dos eixos! Descrevendo um experimento • A medida que você continua esta seção, narre seus resultados. – Diga ao leitor porque o resultado é significativo para o experimento ou problema. Isso permitirá que ele siga sua linha de pensamento. • Compare seus resultados com sua hipótese original. • Declare se sua hipótese foi ou não sustentada pela sua experiência. Detalhando um experimento • Exemplo: To explain these performance trends, we show in Figure 5 the sizes of the large and candidate sets in different passes for the xxxx dataset for the minimum support of 75%. Note that the Y-axis in this graph has a log scale….. Cuidado ao relatar resultados negativos ou falhas • Por exemplo, a frase “we have shown that it is not possible to make further improvement”, pode levar o revisor/leitor a pensar que o que foi mostrado é que o autor não é competente para fazer mais experimentos • Uma falha num experimento não deve ser relatada, mas sim, levar você a refazer ou redefinir um novo experimento • Uma falha no resultado pode mostrar uma falha na hipótese ou nos testes Parâmetros e Ordem dos Resultados • Não esqueça de justificar os valores dos parâmetros escolhidos • Mostre os resultados com diferentes valores de parâmetros, e não mude todos os parâmetros de uma só vez. Mude um parâmetro e mantenha fixos os valores dos demais. – Só assim você estará analisando o efeito de UM parâmetro no experimento. Mudando vários parâmetros AO MESMO TEMPO vc não saberá quem gerou o efeito no resultado (provavelmente todos). • Mostre direto o resultado o final, e depois vá mostrando detalhes e explicando o porquê dos resultados – Mesmo que seu método tenha vários passos, os meios serão usados para explicar os fins (o resultado final), não precisando de um detalhamento passo a passo (veja se isso é coerente com o seu propósito) • Compare seu trabalho com abordagens existentes, pois sem a comparação o revisor não saberá se sua proposta é interessante. Importância da Escolha do Método a ser comparado (baseline) • Desde o inicio da pesquisa já se preocupe em obter o código do trabalho que vc deve comparar com o seu • Escolha o método correto a ser comparado. • A escolha do método errado para comparação pode levar a rejeição do trabalho – Exemplo: Se você estiver propondo um método que reduza o número de regras de associação geradas, você deveria comparar o seu método não apenas com o Apriori, que é o método original, mas com os métodos que eliminam regras redundantes (métodos recentes), para demonstrar que seu método supera ambas as abordagens. – Não faria sentido comparar apenas com a abordagem antiga se já existe um método bem conhecido e que é melhor que o método antigo Interpretação dos experimentos • Quando analisar os experimentos, verifique se há possibilidade de ter outras interpretações dos resultados. Se tiver, já faça um experimento e avalie o resultado, isso evitará questionamentos do revisor sobre essas possibilidades • Nunca escreva em um artigo: X “ we did several tests”, we performed several experiments Discussão dos Resulados • Discussão (se necessário) • Pode ser incluída como subseção final de Experimentos. A Discussão mostra os relacionamentos entre os fatos e resultados observados. Sugestões: • Lembre-se que é uma seção de discussão, na qual vocês discute, e não recapitula os resultados já mostrados nos Experimentos. • liste qualquer exceção ou qualquer falta de relação e defina pontos incertos. • mostre que seus resultados e interpretações concordam (ou contrastam) com trabalhos previamente publicados. • discuta implicações teóricas e possíveis aplicações práticas. • resuma as evidências para cada conclusão, não assuma que o leitor é super capaz de juntar todos os pontos sozinho. Implementação (dicas de Justin Zobel) • Computeiros perdem muito tempo tentando inserir a implementação em um sistema, ou implementando-a de forma que seja impossível fazer uma reprodução. – OBS: A não ser que o sistema seja de código aberto, disponível para uso geral, e de fácil extensão • A regra básica é: mantenha as coisas de forma simples, • Mantenha uma versão na forma de script, que você possa colocar no seu site ou no site do seu orientador para que outros pesquisadores possam reproduzir seu experimento • Faça os parâmetros serem entradas como argumentos, isso evitará em muitos casos que outros pesquisadores precisem recompilar os seus programas • A saida de um script pode ser armazenada em um arquivo, para fácil analise e backup posterior • Um arquivo de saida bem projetado deveria conter: o nome do arquivo de entrada, a versao do codigo, os valores dos parametros, data e hora Log de experimentos • Mantenha um log dos experimentos realizados com data, conjunto de dados, parâmetros, resultado, etc, e selecione apenas os mais relevantes para reportar no artigo • Os resultados mostrados no artigo podem representar apenas uma fração do seu trabalho de pesquisa. • Você não precisa mostrar no artigo o quanto vc trabalhou, mas sim os resulados INTERESSANTES que obteve Descrevendo um experimento: Estudo de Caso • Se for usar um estudo de caso Inclua: – contexto geral, – regras ou condições específicas requeridas pelo caso, – modelagem, funcionamento, v – vantagens e desvantagens de usar o modelo proposto nesse caso. Exemplo IV – Avaliando um modelo • • • • • • • 4. Experimenting CONSTANT in two case studies In this section we present two case studies on two different applications, based on real trajectories. The first case study is based on a tourist application, while the second one is based on a bird migration application. 4.1 CONSTANT instantiation for a Tourism Application In this example we instantiate the CONSTANT model in a very common application for mobility: Tourism. Usually, this kind of application needs to study the movement of people visiting a location – that can be a 4.2 Model Instantiation for a Bird Migration This application case study is related to bird migration, since nowadays it is very common for biologists to study animal behavior with tracking techniques, which can be radio-station based (with low spatio-temporal granularity) or GPS-based (with higher spatio-temporal granularity). Here we assume that the tracked animals are birds equipped with a GPS collar that has a sensor that measures the temperature of the bird. Because of energy consumption, the satellite communication rate of the device is much lower than in the tourism application, where the GPS of tourist in a car can collect a point every second. In the birds application we assume that the sampling rate is more or less 30 minutes. Fonte: Bogorny et al 2014 - CONSTAnT - A Conceptual Data Model for Semantic Trajectories of Moving Objects Exercicio: Projete um experimento para comparar 2 algoritmos bem conhecidos para resolver algum problema • Exemplo: busca binária x hash table (ou busca sequencial x busca binária) 1. Qual é a saída esperada? Ou seja, qual é a hipótese? 2. Bons resultados justificam uma analise da complexidade? 3. Quais fatores deveriam ser medidos? Como eles deveriam ser medidos? 4. Quais seriam bons e apropriados dados de teste? 5. Os resultados dependem do que, características ou peculiaridades dos dados? 6. Quais propriedades os dados deveriam ter para confirmar a hipótese? 7. A qualidade da implementação afeta o resultado?