Java Style Grading

488 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
488
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Java Style Grading

  1. 1. Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Projeto de Inteligência Artificial I Java Style GradingAn Classification Solution based on Machine Learning Augusto Queiroz, Márcio Saraiva, Natã Venâncio {augusto.macedo; marcio.saraiva; nata.melo} @ccc.ufcg.edu.br 22/11/2011
  2. 2. Definição do problemaEstilo de codificação é um tópico presente nas disciplinas iniciais de programação, no entanto a correção dos professores não seguem um padrão. E a grande quantidade de alunos obriga que haja uma automatização desse processo. Como resolver esse impasse?
  3. 3. Solução para o problema Desenvolver um sistema capaz de aprender o critério de notas de estilo de um dado professor. E, após o treinamento, ser capaz de, dado um código Java de um aluno sugerir uma nota com relação ao estilo de codificação.
  4. 4. Restrições de Escopo• O código Java é pequeno • Exercícios semanais • Resolvidos por alunos principiantes em programação • As notas devem ser discretizadas • Classificação• Material necessário: • O professor deve ceder um conjunto de dados de treinamento aleatório e representativo da população (Código + Nota)
  5. 5. Conceitos de IA Envolvidos• Técnicas de aprendizagem o Redes Neurais como Multilayer Perceptron o Rede Bayesianas o Árvores de Decisão• Conceitos de Análise de Classificadores o Precisão o Cobertura o Curva ROC o Overfitting o Underfitting o ...
  6. 6. Solução Implementada1ª Fase:1. Estudo das ferramentas Checkstyle e Metrics2. Desenvolvimento do Parser para Automatização da geração do vetor de características3. Arrecadação de Dados de Treinamento O resultado dessa fase foi uma arquivo no formato .csv com as métricas extraídas dos códigos recebidos.
  7. 7. Solução Implementada2ª Fase • Estudo da ferramenta Weka • Seleção do Vetor de Características O resultado dessa fase foi o estudo do ambiente Weka GUI e seus potenciais e uma pré-estudo das técnicas de seleção das características
  8. 8. Solução Implementada3ª Fase• Experimentação e Análise com as seguintes variações • Estrutura de Classificação: Multilayer perceptron X Bayes Network • Nenhuma Seleção de Atributos x CsfSubsetEval x PCA • Laboratórios em separado e Laboratórios unidos • Porcentagem de dados para o conjunto de treinamento do conjunto dados totais • 3 Classes de Notas x 5 classes de Notas• Implementação da Ferramenta em Java (Integração de módulos) O resultado dessa fase foi o aprendizado com os experimentos e um programa Java para treinar e classificar classificadores que reproduzam o critério de qualidade de código de um determinado professor.
  9. 9. Resultados Obtidos• Na Fase 1… • Parser dos arquivos extraídos do Metrics e Checkstyle
  10. 10. Resultados Obtidos• Na Fase 1… • Parser dos arquivos extraídos do Metrics e Checkstyle
  11. 11. Resultados Obtidos• Na Fase 2… • Estudo da ferramenta Weka GUI
  12. 12. Resultados Obtidos• E, principalmente, na Fase 3 • Análise dos Experimentos • Com todos os atributos
  13. 13. Resultados Obtidos• E, principalmente, na Fase 3 • Análise dos Experimentos • Com seleção pelo algoritmo CsfSubsetEval
  14. 14. Resultados Obtidos• E, principalmente, na Fase 3 • Análise dos Dados Csf – Lab3 Csf – Lab4 Csf – Lab5
  15. 15. Resultados Obtidos• O CsfSubsetEval foi utilizado como base para as seguintes conclusões • Em todos apenas um atributo selecionado! • Lab3: Os dados de treino são variados, as notas de estilo também e, principalmente, tem pouquíssimos dados. • Causando Underfitting. • Lab4: Os dados de treino variam pouco e são poucos e, principalmente, as notas são as mesmas em quase todo o conjunto • Causando Overfitting • Lab5: Os dados de treino são mais variados e as notas são mais variadas e novamente, tem poucos dados. • Causando Underfitting
  16. 16. Resultados Obtidos Java Style Grading versão 1.0 +
  17. 17. Demonstração Prática

×