91 lines
2.3 KiB
R
Executable File
91 lines
2.3 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 e o identificador de cluster
|
|
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)
|
|
library("lsa")
|
|
|
|
# Obter dimensoes da matriz
|
|
|
|
dimtr = dim(matriztreino)
|
|
dimte = dim(matrizteste)
|
|
|
|
# Numero de linhas de treino e de teste
|
|
|
|
ntr=dimtr[1]
|
|
nte=dimte[1]
|
|
|
|
# Numero de colunas de treino e de teste
|
|
|
|
ctr=dimtr[2]
|
|
cte=dimtr[2]
|
|
|
|
# Obter matrizes sem a nota
|
|
|
|
treino= matriztreino[,2:ctr]
|
|
teste= matrizteste[,2:cte]
|
|
|
|
# Converter para matriz ==> Se não fizer isso, a função cosine não funciona
|
|
|
|
F=data.matrix(treino)
|
|
G=data.matrix(teste)
|
|
|
|
# Para guardar notas de teste resultantes
|
|
|
|
notasteste = matrix(,nte)
|
|
|
|
# Para cada amostra de teste
|
|
|
|
for(i in 1:nte)
|
|
{
|
|
residuo=1
|
|
soma = 0
|
|
|
|
# Para cada amostra de treino, obter vetor sem a nota e a nota
|
|
|
|
for(j in 1:ntr)
|
|
{
|
|
# Calcule similaridade entre o treino e o teste e calcule residuo
|
|
|
|
notatreino= matriztreino[j,1]
|
|
|
|
similaridade = cosine(F[j,], G[i,])
|
|
|
|
simi = paste("Treino: ",j," Teste: ", i, " - Similaridade: ", similaridade, " \n")
|
|
cat(simi)
|
|
|
|
soma = soma + notatreino*similaridade*residuo
|
|
|
|
residuo = (1 - similaridade)
|
|
}
|
|
|
|
notasteste[i,1] = soma
|
|
|
|
|
|
|
|
}
|
|
|
|
# Resultados gerados
|
|
|
|
|
|
resultadospreditos=paste(diretorio,"/notasteste-", cluster, ".csv",sep="")
|
|
|
|
|
|
write.csv(notasteste, file = resultadospreditos)
|