#######################################Functions#################################################
modelErrors <- function(predicted, actual) {
sal <- vector(mode="numeric", length=3)
names(sal) <- c( "MAE", "RMSE", "RELE")
meanPredicted <- mean(predicted)
meanActual <- mean(actual)
sumPred <- sum((predicted - meanPredicted)^2)
sumActual <- sum((actual - meanActual)^2)
n<- length(actual)
p3<-vector(mode="numeric", length=n)
for (i in c(1:n)) {
if (actual[i]==0) {p3[i]<-abs(predicted[i])
} else { p3[i]<-((abs(predicted[i]-actual[i]))/actual[i])
}}
sal[1] <- mean(abs(predicted - actual))
sal[2] <- sqrt(sum((predicted - actual)^2)/n)
sal[3] <- mean(p3)
sal
}
train_testErrors<-function(model,inputsTrain,targetsTrain,inputsTest,targetsTest){
predict(model,newdata=as.data.frame(inputsTrain))->trainPredict
modelErrors(trainPredict,targetsTrain)->trainErrors
predict(model,newdata=as.data.frame(inputsTest))->testPredict
modelErrors(testPredict,targetsTest)->testErrors
list(train=trainErrors,test = testErrors)->errors
return(errors)
}
lm_nnet_error<-function(feature_new_train,feature_new_test,dataset){
inputsTrain<-feature_new_train[,-c(ncol(feature_new_train))]
targetsTrain<-feature_new_train[,c(ncol(feature_new_train))]
inputsTest<-feature_new_test[,-c(ncol(feature_new_test))]
targetsTest<-feature_new_test[,c(ncol(feature_new_test))]
lm(MAXO3C~.,data=as.data.frame(cbind(inputsTrain,MAXO3C=targetsTrain)))->lmFit
train_testErrors(lmFit,inputsTrain,targetsTrain,inputsTest,targetsTest)->error_lm
expand.grid( 0, 0.1,0.2,0.4,0.8,1.6,3.2,6.4,8,10)->d
nnet_RMSE_train<-c()
nnet_RMSE_test<-c()
nnet_MAE_train<-c()
nnet_MAE_test<-c()
for (i in 1:10){
nnet(MAXO3C~.,data=as.data.frame(cbind(inputsTrain,MAXO3C=targetsTrain)),size = 13,maxit =1000000,decay = d[i])->net
train_testErrors(net,inputsTrain,targetsTrain,inputsTest,targetsTest)->error_net
nnet_MAE_train<-c(nnet_MAE_train,error_net[[1]][1])
nnet_MAE_test<-c(nnet_MAE_test,error_net[[2]][1])
nnet_RMSE_train<-c(nnet_RMSE_train,error_net[[1]][2])
nnet_RMSE_test<-c(nnet_RMSE_test,error_net[[2]][2])
}
save(error_lm,nnet_MAE_train,nnet_MAE_test,nnet_RMSE_train,nnet_RMSE_test,file=paste("error",dataset,".RData"))
return(errors)
}
load("~/PED/prepareDataDay/feature_new_norm5.RData")
colnames(feature_new_train5)
## [1] "MAXO3P" "AVGO3P" "AVGO3P_MINHRP"
## [4] "MAXO3P_MAXNO2P" "MEDIANWSPP_AVGRHP" "MAXWDRP_MEDIANWDRP"
## [7] "MAXNOXP" "MAXNO2P" "MAXSO2P"
## [10] "MAXCOP" "MAXTMPP" "MAXRHP"
## [13] "MAXWSPP" "MAXWDRP" "MINO3P"
## [16] "MINNOxP" "MINNO2P" "MINSO2P"
## [19] "MINCOP" "MINTMPP" "MINRHP"
## [22] "MINWSPP" "MINWDRP" "AVGNOXP"
## [25] "AVGNO2P" "AVGSO2P" "AVGCOP"
## [28] "AVGTMPP" "AVGRHP" "AVGWSPP"
## [31] "AVGWDRP" "STDO3P" "STDNOxP"
## [34] "STDNO2P" "STDSO2P" "STDCOP"
## [37] "STDTMPP" "STDRHP" "STDWSPP"
## [40] "STDWDRP" "MONTHC" "DAYC"
## [43] "WEEKDAYC" "SEASONC" "MAXO3C"
load("~/PED/nnetAnalysis/error 5 .RData")
error_lm
## $train
## MAE RMSE RELE
## 0.07246 0.09448 0.23234
##
## $test
## MAE RMSE RELE
## 0.07041 0.09400 0.22969
nnet_MAE_train
## MAE MAE MAE MAE MAE MAE MAE MAE MAE
## 0.05655 0.07295 0.07372 0.07467 0.07693 0.08247 0.09627 0.09753 0.09766
## MAE
## 0.09779
nnet_MAE_test
## MAE MAE MAE MAE MAE MAE MAE MAE MAE
## 0.08614 0.07119 0.07149 0.07202 0.07368 0.07826 0.08913 0.09024 0.09039
## MAE
## 0.09052
nnet_RMSE_train
## RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE
## 0.07357 0.09522 0.09591 0.09679 0.09911 0.10511 0.12088 0.12220 0.12230
## RMSE
## 0.12238
nnet_RMSE_test
## RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE
## 0.11438 0.09369 0.09384 0.09388 0.09499 0.09920 0.11198 0.11317 0.11328
## RMSE
## 0.11338
load("~/PED/prepareDataDay/feature_new_norm7.RData")
colnames(feature_new_train7)
## [1] "MAXO3P" "AVGO3P" "AVGO3P_MINHRP"
## [4] "MAXO3P_MAXNO2P" "MEDIANWSPP_AVGRHP" "MAXWDRP_MEDIANWDRP"
## [7] "MAXNOXP" "MAXNO2P" "MAXSO2P"
## [10] "MAXCOP" "MAXTMPP" "MAXRHP"
## [13] "MAXWSPP" "MAXWDRP" "MINO3P"
## [16] "MINNOxP" "MINNO2P" "MINSO2P"
## [19] "MINCOP" "MINTMPP" "MINRHP"
## [22] "MINWSPP" "MINWDRP" "AVGNOXP"
## [25] "AVGNO2P" "AVGSO2P" "AVGCOP"
## [28] "AVGTMPP" "AVGRHP" "AVGWSPP"
## [31] "AVGWDRP" "STDO3P" "STDNOxP"
## [34] "STDNO2P" "STDSO2P" "STDCOP"
## [37] "STDTMPP" "STDRHP" "STDWSPP"
## [40] "STDWDRP" "MONTHC" "DAYC"
## [43] "WEEKDAYC" "SEASONC" "O3point"
## [46] "NOXpoint" "NO2point" "SO2point"
## [49] "COpoint" "TMPpoint" "RHpoint"
## [52] "WSPpoint" "WDRpoint" "MAXO3C"
load("~/PED/nnetAnalysis/error 7 .RData")
error_lm
## $train
## MAE RMSE RELE
## 0.05561 0.07273 0.16994
##
## $test
## MAE RMSE RELE
## 0.05672 0.07473 0.16651
nnet_MAE_train
## MAE MAE MAE MAE MAE MAE MAE MAE MAE
## 0.03003 0.05694 0.05850 0.06173 0.06745 0.07650 0.09253 0.09619 0.09636
## MAE
## 0.09651
nnet_MAE_test
## MAE MAE MAE MAE MAE MAE MAE MAE MAE
## 0.08280 0.05688 0.05751 0.05983 0.06555 0.07460 0.09034 0.09406 0.09420
## MAE
## 0.09432
nnet_RMSE_train
## RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE
## 0.04178 0.07426 0.07604 0.07960 0.08645 0.09726 0.11628 0.12057 0.12071
## RMSE
## 0.12082
nnet_RMSE_test
## RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE
## 0.10902 0.07541 0.07652 0.07911 0.08498 0.09519 0.11427 0.11857 0.11868
## RMSE
## 0.11874
load("~/PED/prepareDataDay/feature_new_norm8.RData")
colnames(feature_new_train8)
## [1] "MAXO3P" "AVGO3P" "O3point" "NOXpoint" "NO2point" "SO2point"
## [7] "COpoint" "TMPpoint" "RHpoint" "WSPpoint" "WDRpoint" "MAXO3C"
load("~/PED/nnetAnalysis/error 8 .RData")
error_lm
## $train
## MAE RMSE RELE
## 0.05760 0.07559 0.17479
##
## $test
## MAE RMSE RELE
## 0.05490 0.07163 0.17238
nnet_MAE_train
## MAE MAE MAE MAE MAE MAE MAE MAE MAE
## 0.05029 0.05882 0.06014 0.06295 0.06858 0.08129 0.09566 0.09604 0.09613
## MAE
## 0.09622
nnet_MAE_test
## MAE MAE MAE MAE MAE MAE MAE MAE MAE
## 0.05746 0.05594 0.05721 0.06063 0.06736 0.08215 0.09753 0.09800 0.09812
## MAE
## 0.09824
nnet_RMSE_train
## RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE
## 0.06589 0.07672 0.07804 0.08103 0.08743 0.10246 0.11986 0.12021 0.12026
## RMSE
## 0.12031
nnet_RMSE_test
## RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE
## 0.07556 0.07249 0.07397 0.07760 0.08557 0.10321 0.12235 0.12275 0.12282
## RMSE
## 0.12288
load("~/PED/prepareDataDay/feature_new_norm11.RData")
colnames(feature_new_train11)
## [1] "MAXO3P" "AVGO3P" "AVGO3P_MINHRP"
## [4] "MAXO3P_MAXNO2P" "MEDIANWSPP_AVGRHP" "MAXWDRP_MEDIANWDRP"
## [7] "MAXNOXP" "MAXNO2P" "MAXSO2P"
## [10] "MAXCOP" "MAXTMPP" "MAXRHP"
## [13] "MAXWSPP" "MAXWDRP" "MINO3P"
## [16] "MINNOxP" "MINNO2P" "MINSO2P"
## [19] "MINCOP" "MINTMPP" "MINRHP"
## [22] "MINWSPP" "MINWDRP" "AVGNOXP"
## [25] "AVGNO2P" "AVGSO2P" "AVGCOP"
## [28] "AVGTMPP" "AVGRHP" "AVGWSPP"
## [31] "AVGWDRP" "STDO3P" "STDNOxP"
## [34] "STDNO2P" "STDSO2P" "STDCOP"
## [37] "STDTMPP" "STDRHP" "STDWSPP"
## [40] "STDWDRP" "MONTHC" "DAYC"
## [43] "WEEKDAYC" "SEASONC" "TMPpoint"
## [46] "RHpoint" "WSPpoint" "WDRpoint"
## [49] "MAXO3C"
load("~/PED/nnetAnalysis/error 11 .RData")
error_lm
## $train
## MAE RMSE RELE
## 0.06964 0.09063 0.21779
##
## $test
## MAE RMSE RELE
## 0.07410 0.09685 0.23158
nnet_MAE_train
## MAE MAE MAE MAE MAE MAE MAE MAE MAE
## 0.03923 0.07069 0.07203 0.07344 0.07614 0.08231 0.09580 0.09660 0.09673
## MAE
## 0.09685
nnet_MAE_test
## MAE MAE MAE MAE MAE MAE MAE MAE MAE
## 0.10201 0.07411 0.07471 0.07500 0.07638 0.08148 0.09236 0.09304 0.09315
## MAE
## 0.09325
nnet_RMSE_train
## RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE
## 0.05417 0.09193 0.09335 0.09472 0.09761 0.10453 0.12012 0.12091 0.12101
## RMSE
## 0.12108
nnet_RMSE_test
## RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE RMSE
## 0.13551 0.09706 0.09766 0.09773 0.09888 0.10366 0.11698 0.11765 0.11772
## RMSE
## 0.11777