library(RSNNS) library(data.table) set.seed(1) #CARGA DE DATOS trainSet <- data.table(read.csv("DatosTrain.csv",dec=",",sep=";",header = T)) testSet <- data.table(read.csv("DatosTest.csv",dec=",",sep=";",header = T)) #ELECCION DEL OBJETIVO target <- "salida" #SELECCION DE LOS PARAMETROS topologia <- c(20) razonAprendizaje <- 0.01 ciclosMaximos <- 200 #EJECUCION DEL APRENDIZAJE Y GENERACION DEL MODELO model <- rbf(x= trainSet[,-target,with=F], y= trainSet[,target,with=F], size= topologia, maxit=ciclosMaximos, learnFuncParams=c(razonAprendizaje), shufflePatterns = F ) #GRAFICO DE LA EVOLUCION DEL ERROR plotIterativeError(model) RMSE <- function(pred,obs) (sum((pred - obs)^2) / length(obs)) ^ (1/2) #VECTOR DE LOS ERRORES errors <- c(TrainRMSE= RMSE(pred= predict(model,trainSet[,-target,with=F]),obs= trainSet[,target,with=F]), TestRMSE= RMSE(pred= predict(model,testSet[,-target,with=F]) ,obs= testSet[,target,with=F])) #TABLA CON LOS ERRORES POR CICLO iterativeErrors <- data.table(RMSETrain= (model$IterativeFitError/nrow(trainSet)) ^(1/2)) #SALIDAS DE LA RED outputs <- data.table(train= predict(model,trainSet[,-target,with=F]), test= c(predict(model,testSet[,-target,with=F] ),rep(NA,nrow(trainSet)-nrow(testSet)))) colnames(outputs) <- c("train","test") #GUARDADO DE RESULTADOS saveRDS(model,"nnet.rds") write.csv2(errors,"finalErrors.csv") write.csv2(iterativeErrors,"iterativeErrors.csv") write.csv2(outputs,"netOutputs.csv")