#################
## Set up Cluster (H2O is a Java ML Platform, with R/Python/Web/Java APIs)
#################
library(h2o) # R API is just a library
library(ggplot2) # Data visualization
library(readr) # CSV file I/O, e.g. the read_csv function
library(data.table)
library(Metrics)
## start a cluster; default is 2 cores for CRAN reasons; -1 = all

train = fread("../input/train.csv", select = c("Semana","Agencia_ID", "Cliente_ID", "Producto_ID", "Demanda_uni_equil"))

#train = subset(train, Semana == 7)
#Demand_out <- which(Demanda_uni_equil %in% boxplot.stats(Demanda_uni_equil)$out)

#dim(Demand_out)

#Demand_out
#groups <- train[, mean(Demanda_uni_equil),by = .(Agencia_ID,Producto_ID,Cliente_ID)]
#groups
outliers = boxplot(train$Demanda_uni_equil, plot=TRUE)$out
train[train$Demanda_uni_equil %in% outliers,]

outliers
#boxplot(train$Demanda_uni_equil)

#ggplot(train,aes(x=Producto_ID,y=Demanda_uni_equil)) + 
#facet_wrap(~Semana,scale="free_y")

#h2o.init(nthreads=-1,max_mem_size='7G')  

#train_h2o <- h2o.uploadFile("../input/train.csv",destination_frame = "train.hex")

#train_h2o <- train_h2o[ ,c("Semana", "Agencia_ID", "Canal_ID", "Ruta_SAK", "Cliente_ID", "Producto_ID", "Demanda_uni_equil")]


#train_h2o$target <- log(train_h2o$Demanda_uni_equil+1)

#train_h2o <- h2o.splitFrame(data = train_h2o , ratios = 0.7)

#sample_h2o <- train_h2o[[1]]
#model_h2o <- train_h2o[[2]]


#model_h2o <- h2o.splitFrame(data = model_h2o , ratios = 0.8)

#groups <- h2o.group_by(data=sample_h2o,by="Producto_ID",mean("target"))


#joined_train <- h2o.merge(x=model_h2o[[1]],y=groups,all.x = T)
#joined_train$mean_target[is.na(joined_train$mean_target)] <- 0.6

#joined_train

#joined_test <- h2o.merge(x=model_h2o[[2]],y=groups,all.x = T)
#joined_test$mean_target[is.na(joined_test$mean_target)] <- 0.6


#gbm_model <- h2o.gbm(y=8, x=c(1:6), training_frame = joined_train, validation_frame = joined_test , ntrees = 200, learn_rate = 0.5)

#summary(gbm_model)

#test<-h2o.uploadFile("../input/test.csv",destination_frame = "test.hex")

#predict_data<-h2o.merge(x=test,y=groups,all.x = T)
#predict_data$mean_target[is.na(predict_data$mean_target)] <- 0.6

#p<-h2o.predict(gbm_model,predict_data)

#p<-exp(p)-1

#summary(p)
#print("Performance: ")
#print("Acuracy: ")
#h2o.auc(h2o.performance(gbm_model))

#submission <- h2o.cbind(test$id,p)
#colnames(submission) <- c("id","Demanda_uni_equil")
#h2o.exportFile(submission,path="submission.csv") 



