pcodigo2web/workspace/avaliador/index.R

79 lines
2.2 KiB
R
Executable File

# Este codigo realiza a predicao de notas por avaliação sintatica
# Autora: Márcia Gonçalves de Oliveira
# Ano 2013
# Entrada dos dados de treino e de teste
# Treino é a base referencia de predicao
# Teste são as amostras que serão pontuadas a partir da referencia de treino aprendida.
# Recebe argumento de entrada: diretorio onde estao matrizes de treino e teste
args <- commandArgs(TRUE)
diretorio=args[1]
cluster= args[2]
# Carrega matrizes de treino e teste
enderecotreino=paste(diretorio,"/treinopontuado-", cluster,".csv",sep="");
enderecoteste=paste(diretorio,"/testenaopontuado-",cluster,".csv",sep="");
matriztreino <- read.table(enderecotreino, header=T, sep=";")
matrizteste <- read.table(enderecoteste, header=T, sep=";")
library(MASS)
attach(matriztreino)
# Cria o modelo regressor a partir do treino e das variáveis de avaliação selecionadas
modelo=lm(nota~compila+funciona+cfor+cdo+cwhile+cauto+cbreak+ccontinue+cif+celse+cswitch+ccase+cdefault+cstruct+ctypedef+cinclude+cmain+cscanf+cimprimir+comentario+cgets+cputs+cgetchar+creturn+endereco+opigual+opmenorigual+opmaiorigual+opdiferente+opatrib+opnot+opmaior+opmenor+opand+opor+opinc+opdec+opmais+opmenos+opmult+opdiv+opresto+tconst+tchar+tdouble+tfloat+tint+tlong+tshort+tunsignal+tsigned+tvoid+tenum+cextern+cgoto+cregister+csizeof+cstatic+cunion+cvolatile)
# Selecionar as características que realmente contribuem com o modelo
modelosimplificado= step(modelo, trace = 0)
result=summary(modelosimplificado)
result
analiseanova=anova(modelosimplificado)
analiseanova
detach(matriztreino)
vetnotasreais = matrizteste[,1]
# Obter vetores com as notas preditas das amostras de treino
vetnotaspreditas= predict(modelosimplificado,newdata=matrizteste)
# Gerar gráfico
grafico = paste(diretorio,"/imagemgrafico.jpg",sep="")
jpeg(grafico)
plot(vetnotasreais~vetnotaspreditas)
dev.off()
# Resultados gerados
resultadospreditos=paste(diretorio,"/notastestepreditas.csv",sep="")
write.csv(vetnotaspreditas, file = resultadospreditos)