train_valid <- as.data.frame(train_valid_)
#executes the training by notches
for (i in 1:length(notches)){
df_train <- train_valid[which((train_valid$predict_picked == as.character(notches[[i]][1]))|(train_valid$predict_picked == as.character(notches[[i]][2]))|(train_valid$predict_picked == as.character(notches[[i]][3]))),]
if (length(df_train[,1])>0){
df_h2o <- as.h2o(df_train)
#splits the dataset into train, valid, usually is 80%, 20% just used when the test data were picked already
splits <- h2o.splitFrame(df_h2o, c(0.8))
train <- h2o.assign(splits[[1]], "train.hex") # 80%
valid <- h2o.assign(splits[[2]], "valid.hex") # 20%
#transform all columns needed to factors
train$rating_crude <- as.factor(train$rating_crude)
train$rating_full <- as.factor(train$rating_full)
train$sector <- as.factor(train$sector)
train$Ticker <- as.factor(train$Ticker)
valid$rating_crude <- as.factor(valid$rating_crude)
valid$rating_full <- as.factor(valid$rating_full)
valid$sector <- as.factor(valid$sector)
valid$Ticker <- as.factor(valid$Ticker)
DL_picked <- DL_gridsearch(response_,selected_predictors_,train,valid,num_models_=5,best_error_=1)
DRF_picked <- DRF_final_tier_userdefined(response_,selected_predictors_,train,valid)
err_dl_model <- h2o.confusionMatrix(h2o.performance(DL_picked,valid=T))$Error[length(h2o.confusionMatrix(h2o.performance(DL_picked,valid=T)))-1]
err_drf_model <- h2o.confusionMatrix(h2o.performance(DRF_picked,valid=T))$Error[length(h2o.confusionMatrix(h2o.performance(DRF_picked,valid=T)))-1]
if ((err_dl_model <= err_drf_model)&((err_drf_model != 1)|(err_dl_model != 1))){
assign(paste0("not",i,"_model"),DL_picked)
}else if((err_drf_model != 1)|(err_dl_model != 1)){
assign(paste0("not",i,"_model"),DRF_picked)
}else{
assign(paste0("not",i,"_model"),0)
}
}else{
assign(paste0("not",i,"_model"),0)
}
}