java style grading

17
Projeto de Inteligência Artificial I Java Style Grading An 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 Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação

Upload: nata-melo

Post on 24-May-2015

294 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Java Style Grading

Projeto de Inteligência Artificial I

Java Style Grading An 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

Universidade Federal de Campina Grande

Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação

Page 2: Java Style Grading

Definição do problema

Estilo 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?

Page 3: Java Style Grading

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.

Page 4: Java Style Grading

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)

Page 5: Java Style Grading

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 ...

Page 6: Java Style Grading

Solução Implementada

1ª Fase: 1. Estudo das ferramentas Checkstyle e Metrics 2. Desenvolvimento do Parser para Automatização da geração do

vetor de características 3. 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.

Page 7: Java Style Grading

Solução Implementada 2ª 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

Page 8: Java Style Grading

Solução Implementada

3ª 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.

Page 9: Java Style Grading

Resultados Obtidos • Na Fase 1…

• Parser dos arquivos extraídos do Metrics e Checkstyle

Page 10: Java Style Grading

Resultados Obtidos • Na Fase 1…

• Parser dos arquivos extraídos do Metrics e Checkstyle

Page 11: Java Style Grading

Resultados Obtidos • Na Fase 2…

• Estudo da ferramenta Weka GUI

Page 12: Java Style Grading

Resultados Obtidos • E, principalmente, na Fase 3

• Análise dos Experimentos • Com todos os atributos

Page 13: Java Style Grading

Resultados Obtidos • E, principalmente, na Fase 3

• Análise dos Experimentos • Com seleção pelo algoritmo CsfSubsetEval

Page 14: Java Style Grading

Resultados Obtidos • E, principalmente, na Fase 3

• Análise dos Dados

Csf – Lab3

Csf – Lab4 Csf – Lab5

Page 15: Java Style Grading

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

Page 16: Java Style Grading

Resultados Obtidos

Java Style Grading

versão 1.0

+

Page 17: Java Style Grading

Demonstração Prática