• No results found

Os resultados apresentados a seguir refletem a avaliação do classificador no estudo piloto #2. Nesse estudo, foi produzido o classificador em seu estado final. Para ele, foi utilizada a ferramenta de apoio Mallet, apenas.

Na Figura 11, são apresentados os resultados de avaliação da acurácia do classificador para o experimento “Validação Um para Restante”, obtidos em cada sistema. Pode ser observado que o algoritmo com o melhor desempenho para o classificador foi o Max Ent com acurácia média de 66%. O algoritmo com pior medida de desempenho foi o Winnow com acurácia média de 52%.

Figura 11 – “Validação Um para Restante”, acurácia medida para validação composta na Tabela 2.

Na Figura 12, são apresentados os resultados de avaliação da acurácia do classificador para o experimento “Validação dos Projetos Separados”, obtidos em cada sistema, por meio da execução dos algoritmos escolhidos para a avaliação. Pode ser observado que o algoritmo com o melhor desempenho para o classificador foi o Max Ent com acurácia média de 81%. O algoritmo com pior medida de desempenho foi o Winnow com acurácia média 68%.

Na Figura 13, são mostrados os resultados de avaliação da acurácia do classificador para o experimento “Validação Todos para Todos”, por meio da execução dos algoritmos escolhidos para a avaliação. Pode ser observado que o algoritmo que obteve o melhor desempenho para o classificador foi o Max Ent com acurácia média de 80%. O algoritmo com pior medida de desempenho foi o Decision Tree com acurácia média de 66%.

62 Capítulo 4. Estudo Experimental

Figura 12 – “Validação dos Projetos Separados”, acurácia medida para validação com- posta na Tabela 4.

Figura 13 – “Validação Todos para Todos”, acurácia medida para validação composta na Tabela 6.

4.3 Conclusão

Analisando os resultados da Seção 4.2, observa-se que o estudo experimental utilizando o toolkit Weka alcançou resultado de desempenho para o algoritmo Naïve Bayes com a média aproximada de 66%. Conclui-se que pode significar bom resultado utilizando o Weka com o conjunto de atributos do estudo piloto #1, em comparação com a acurácia atingida pelos desenvolvedores apresentada no Seção 4.1, com valor 57,4%.

Os resultados apresentados com a utilização do toolkit Mallet no estudo experimental principal desta pesquisa (Subseção 3.1.2), que produziu o classificador de issues em seu estado final, mostraram que, nos experimentos, o algoritmo que atingiu a melhor acurácia foi o MaxEnt.

4.3. Conclusão 63

O algoritmo Max Ent possui como mecanismo de funcionamento a procura por uma distribuição que maximiza a entropia entre as features do modelo. Esse algoritmo busca estabelecer uma distribuição mais uniforme possível. Para isto utiliza constraints (res- trições) aplicadas a função exponencial de ajuste dos pesos. Essa função, possui regras de otimização que são potencializadas em determinados cenários, como o desse estudo em que são analisados documentos de texto. As regras estão ligadas ao fato dele não assumir hipótese de independência entre features. No cenário de classificação de texto, considerando-se as features sendo as palavras-chave que discriminam os tipos de issues, observa-se a existência de graú de dependência entre elas. Ainda favorecendo ao graú de dependência entre as features, os textos analisados pertencem ao mesmo domínio, de issues. Por existir graú de dependência entre as features sugestivamente alto (garantido em documentos de texto), permitindo alcance de otimização potencializada do algoritmo Max Ent, entende-se que por isso ele obteve destaque em relação aos demais, durante as aferições de acurácia do classificador.

Durante a classificação das issues em múltiplas categorias esse algoritmo obteve 79% de acurácia para o experimento #2. Isso significa ótimo resultado em comparação aos 57,4% de acurácia dos desenvolvedores, houve aumento de 21.6% na acurácia . A partir desse resultado, conclui-se que a classificação das issues nos issue trackers systems pode ser melhorada utilizando a classificação automática.

Os algoritmos da família Winnow, neste estudo representados pelo Winnow e Balanced Winnow, possuem uma função linear para o ajuste dos pesos que representa a frequência das features nos documentos analisados. São algoritmos dirigidos a erros (mistake dri- ven), o que significa dizer que necessitam da ocorrência de boa quantidade de erros para completar seu mecanismo de aprendizado, uma vez que a função de ajuste da predição é sensibilizada quando ocorrem erros durante o treinamento do classificador.

O algoritmo Winnow possui apenas um vetor de pesos associado as features. Esses pesos podem ser valores negativos, quando a função preditiva contabiliza a ausência da feature em um documento analisado, ou valores positivos, quando contabiliza a presença da feature.

O algoritmo Balanced Winnow possui otimização representada pela utilização de dois vetores de pesos, o positivo e o negativo. Durante sua execução a função preditiva computa a diferença entre os valores de pesos armazenados nestes dois vetores. Esse ajuste o torna mais robusto em relação ao Winnow, em situações onde o dataset possui tamanho elevado,

64 Capítulo 4. Estudo Experimental

como é o caso do dataset desse estudo. Devido a essa otimização entende-se que esse algoritmo superou o Winnow durante as aferições de acurácia do classificador.

A classificação em duas categorias mostrou que o algoritmo MaxEnt obteve a melhor medida de desempenho atingindo o maior valor de 80.85%. O estudo apresentado em [Herzig, Just e Zeller 2013] revelou que em média 39% das issues classificadas pelos desenvolvedores como bug não o são. Logo a acurácia dos desenvolvedores é de 61%. Comparando este resultado com aquele apresentado no estudo classificatório de issues em duas categorias, observamos o aumento de 19.85% da acurácia obtida pelo classificador automático em relação a classificação realizada pelos desenvolvedores. Esse resultado mostra que pode-se obter alta acurácia utilizando a classificação automática das issues para distingui-las entre bugs e others.

Uma importante conclusão sobre os resultados apresentados pode ser feita com a ob- servação da variedade de projetos avaliados, de um total de cinco projetos, em diferentes issues trackers systems, num total de dois. Os bons resultados apresentados para o clas- sificador concebido, emparelhados com as validações (cross validation), sugerem que o classificador desse estudo pode ser utilizado com alta acurácia em outros projetos de software para a classificação automática de issues.

De modo geral, conclui-se que a classificação automática de issues nos issue trackers systems pode ser realizada por meio de classificadores automáticos como o apresentado neste estudo. Dessa forma as issues podem ser endereçadas aos seus solucionadores por meio de sistemas de encaminhamento automático, com melhor qualidade de classificação do que aquela apresentada pelos desenvolvedores que as propõem. Isto contribuirá para o aumento da eficiência do tratamento das issues e diminuição do retrabalho das equipes de desenvolvimento de software que as tratam.

65

Capítulo

5