# the code to transforme to regression was transfered to spatialMatrixRegression.R ############################################################################# # Train the models # train.all <- function(obj, name2save){ train.trees(obj, name2save) train.svms(obj, name2save) train.rfs(obj, name2save) } train.rfs <- function(obj, name2save){ # rf.T <- system.time(rf <- tune.model(data=obj, learner="randomForest", params=list(ntree=c(500,1000,1500)))) rf.T <- system.time(rf <- tune.model(data=obj, learner="randomForest", params=list(ntree=500))) save(rf, rf.T, file=paste("data/",name2save,"_rf",".RData",sep="")) print(paste(paste("data/",name2save,"_rf",".RData",sep=""))) } train.trees <- function(obj, name2save){ # tree.T <- system.time(tree <- tune.model(data=obj, learner="rpartXse", params=list(se=c(0,.5,1,1.5)))) tree.T <- system.time(tree <- tune.model(data=obj, learner="rpartXse", params=list(se=0))) save(tree, tree.T, file=paste("data/",name2save,"_tree",".RData",sep="")) print(paste("data/",name2save,"_tree",".RData",sep="")) } train.svms <- function(obj, name2save){ # svm.T <- system.time(svm <- tune.model(data=obj, learner="svm", params=list(cost=c(1,10,100),gamma=c(.1, .5)))) svm.T <- system.time(svm <- tune.model(data=obj, learner="svm", params=list(cost=1,gamma=.1))) save(svm, svm.T, file=paste("data/",name2save,"_svm",".RData",sep="")) print(paste("data/",name2save,"_svm",".RData",sep="")) } ############################################################################# # train.base.models(x0,"x0") train.base.models <- function(obj, obj.name){ nomes <- c(paste("m",1:3,sep=""), paste("w",1:3,sep="")) for(n in nomes){ aux.t <- system.time(aux.pred <- learn.base.models(obj=obj, type=n)) # assign time assign(paste(obj.name,n,sep="."), aux.pred) assign(paste(obj.name,n,"T",sep="."), aux.t) } save(list=c(paste(obj.name, nomes,sep="."),paste(obj.name,nomes,"T",sep=".")),file=paste("data/",obj.name,"_base.RData",sep="")) } ############################################################################# # krige learn.autokrige.saving <- function(obj, nome, nmax){ model <- list() try(kc.T <- system.time(model[["autoKrige"]] <- learn.autokrige(obj, nmax))) try(save(model, kc.T, file=paste("data/",nome,"_autoKrige.RData",sep=""))) try(rm(model, kc.T)) } ########################################################################## getRealValues <- function(model){ real <- list() for(i in 1:length(model)){ variations <- list() # for 1 ... 30 data variation for(j in 1:length(model[[i]]$pred)){ variations[[length(variations)+1]] <- model[[i]]$real[[j]] } real[[length(real)+1]] <- variations } real } ###################################################################################### # Error error <- function(preds, type="MAE"){ er <- NULL for(i in 1:length(preds)){ error <- NULL for(j in 1:length(preds[[i]]$pred)){ error <- c(error, mae(preds[[i]]$pred[[j]], preds[[i]]$real[[j]])) } er <- c(er, mean(error)) } er } ########################################################################################### # plot the predicted picture saveNAJpg <- function(obj, file.name="nina", gap.id=1){ for(i in 1:length(obj$data)){ mat <- num2mat(obj$data[[i]]$gaps[[gap.id]], obj$num.cols) mat[which(is.na(mat))] <- 255 img.mat <- imagedata(mat) writeJpeg(paste("graphics/",file.name,"_",i,"_",gap.id,".jpg",sep=""), img.mat) print(paste("graphics/",file.name,"_",i,"_",gap.id,".jpg saved",sep="")) } } saveModelJpg <- function(obj, model, model.name, file.name, model.tuning.id=1, gap.id=1, type="model"){ for(i in 1:length(obj$data)){ gaps <- obj$data[[i]]$gaps[[gap.id]] ind.na <- which(is.na(gaps)) if(type=="base"){ pred <- model[[i]]$pred[[gap.id]] } else if(type=="model"){ pred <- model[[model.tuning.id]][[i]]$pred[[gap.id]] } gaps[ind.na] <- pred mat <- num2mat(gaps, obj$num.cols) img.mat <- imagedata(mat) writeJpeg(paste("graphics/",file.name,".jpg",sep=""), img.mat) } } ########################################################################################### # Mean Absolute Error mae <- function(pred, real){ if(length(pred)!=length(real)) stop("must have the same length") mean(abs(pred-real)) }