Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
work:semana_27_de_2021 [2021/08/06 22:05] magsilvawork:semana_27_de_2021 [2021/09/14 14:50] (current) – ↷ Links adapted because of a move operation 65.21.179.252
Line 1: Line 1:
 ====== Semana 27 de 2021 ====== ====== Semana 27 de 2021 ======
-  * Reunião com [[Bruno Henrique Pachulski Camara]]. +  * Reunião com [[.students:bruno_henrique_pachulski_camara]]. 
-  * Leitura do artigo "Run, Forest, Run? On Randomization and Reproducibility in Predictive Software Engineering". Com tantos trabalhos em Engenharia de Software que utilizam técnicas de aprendizagem de máquina, era de se esperar encontrar algum que analisa a qualidade dos resultados obtidos em tais estudos. No caso, foram considerados artigos quanto à previsão de defeitos em unidade de software, quanto à previsão quanto à satisfação de um requisito de teste (mutante) no teste baseado em mutação (análise de mutantes) e quanto à previsão  de indícios de problemas de design em uma unidade de código (code smells). No trabalho do [[Bruno Henrique Pachulski Camara]], eu tinha reparado que diversos parâmetros e configurações afetavam a replicabilidade, o que é novamente apontado no artigo. No entanto, eles identificam outros problemas. Por exemplo, muitos algoritmos de aprendizagem de máquina são probabilísticos (erroneamente ditos como não determinísticos) e dependem de uma semente de aleatoriedade. O artigo mostra claramente que isso tem um impacto importante nos resultados. Outro ponto é quanto à aleatoriedade para amostragem ao particionar os dados. Interessante que eles também indicam diferenças entre as implementações de algoritmos como ameaças a tais estudos. Enfim, um trabalho interessante que permite retirar algumas lições para próximos estudos:+  * Leitura do artigo "Run, Forest, Run? On Randomization and Reproducibility in Predictive Software Engineering". Com tantos trabalhos em Engenharia de Software que utilizam técnicas de aprendizagem de máquina, era de se esperar encontrar algum que analisa a qualidade dos resultados obtidos em tais estudos. No caso, foram considerados artigos quanto à previsão de defeitos em unidade de software, quanto à previsão quanto à satisfação de um requisito de teste (mutante) no teste baseado em mutação (análise de mutantes) e quanto à previsão  de indícios de problemas de design em uma unidade de código (code smells). No trabalho do [[.students:bruno_henrique_pachulski_camara]], eu tinha reparado que diversos parâmetros e configurações afetavam a replicabilidade, o que é novamente apontado no artigo. No entanto, eles identificam outros problemas. Por exemplo, muitos algoritmos de aprendizagem de máquina são probabilísticos (erroneamente ditos como não determinísticos) e dependem de uma semente de aleatoriedade. O artigo mostra claramente que isso tem um impacto importante nos resultados. Outro ponto é quanto à aleatoriedade para amostragem ao particionar os dados. Interessante que eles também indicam diferenças entre as implementações de algoritmos como ameaças a tais estudos. Enfim, um trabalho interessante que permite retirar algumas lições para próximos estudos:
     * Treinar o modelo utilizando diferentes técnicas de amostragem (sampling) para um mesmo dataset (100 execuções). Isso se aplica ao 10-fold cross-validation, indicando a necessidade para fazer vários repartionamentos. Com uma base de dados de entrada, talvez isso tenha pouco efeito prático, mas só saberemos se é uma boa base de entrada se os resultados não variarem de forma significativa ao fazer isto.     * Treinar o modelo utilizando diferentes técnicas de amostragem (sampling) para um mesmo dataset (100 execuções). Isso se aplica ao 10-fold cross-validation, indicando a necessidade para fazer vários repartionamentos. Com uma base de dados de entrada, talvez isso tenha pouco efeito prático, mas só saberemos se é uma boa base de entrada se os resultados não variarem de forma significativa ao fazer isto.
     * Treinar o modelo de aprendizagem de máquina diversas vezes (100 vezes), definindo de forma explícita as sementes de aleatoriedade.     * Treinar o modelo de aprendizagem de máquina diversas vezes (100 vezes), definindo de forma explícita as sementes de aleatoriedade.