Both sides previous revisionPrevious revisionNext revision | Previous revision |
work:semana_27_de_2021 [2021/07/08 19:41] – magsilva | work:semana_27_de_2021 [2021/09/14 14:50] (current) – ↷ Links adapted because of a move operation 65.21.179.252 |
---|
====== 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. |
* Avaliar a diferença estatística dos resultados da previsão (por exemplo, teste de Friedman para avaliar se existe ou não diferença e o teste post-hoc de Nemenyi para avaliar o efeito). | * Avaliar a diferença estatística dos resultados da previsão (por exemplo, teste de Friedman para avaliar se existe ou não diferença e o teste post-hoc de Nemenyi para avaliar o efeito). |
| |
| ===== Ensino ===== |
| * No Conexão UTFPR desta semana, foi abordado o desenvolvimento de artigos científicos como estratégia no ensino e aprendizagem (https://www.youtube.com/watch?v=IS74LzKYUqA). O conceito é interessante. No caso, a disciplina tem como produto um artigo que é criado com o auxílio de uma ferramenta: http://pb.utfpr.edu.br/savepi/. Esta ferramenta provê todo o conteúdo necessário para o desenvolvimento do artigo. Cabe destacar que o artigo é na criação de planos de negócio, de forma rigorosa e aplicada, sem necessariamente avançar o estado da arte da área de administração. Mesmo assim, é uma abordagem interessante. |