# This script will copy a couple example photos from the input directory to the output directory

library("Matrix")
library("jpeg")
library("raster")
library("colorspace")
library(readr)
library("e1071")
library("irlba")
library("xgboost")
library("rgl")

train_photo_to_biz_ids <- read_csv("../input/train_photo_to_biz_ids.csv")
train<-read_csv("../input/train.csv")
train_photo_to_biz_ids<-train_photo_to_biz_ids[order(train$business_id),]
n<- nrow(train_photo_to_biz_ids)
print(n)
print(nrow(train))

image_list<-list()
indices<-sample(nrow(train),200)
for (i in seq_along(indices)) {
     cmd <- paste0("../input/train_photos/", 
     train_photo_to_biz_ids$photo_id[i],
    ".jpg")
     image_list[[i]]<-readJPEG(cmd)
     
}

train1<-as.data.frame(t(sapply(image_list,function(x) { 
  x<-x[(dim(x)[1]-50):(dim(x)[1]-25),(dim(x)[2]-50):(dim(x)[2]-25),] 
c(rowMeans(x[,,1]),colMeans(x[,,1]),
  rowMeans(x[,,2]),colMeans(x[,,2]),
  rowMeans(x[,,3]),colMeans(x[,,3]))})))

str(train1)

train$one<-ifelse(grepl("1",train$label)=="TRUE",1,0)
train$two<-ifelse(grepl("2",train$label)=="TRUE",1,0)
train$three<-ifelse(grepl("3",train$label)=="TRUE",1,0)
train$four<-ifelse(grepl("4",train$label)=="TRUE",1,0)
train$five<-ifelse(grepl("5",train$label)=="TRUE",1,0)
train$six<-ifelse(grepl("6",train$label)=="TRUE",1,0)
train$seven<-ifelse(grepl("7",train$label)=="TRUE",1,0)
train$eight<-ifelse(grepl("8",train$label)=="TRUE",1,0)

dtrain<-xgb.DMatrix(data=data.matrix(train1),
                         label=train$six[indices])
param <- list(  objective           = "binary:logistic",
                                booster             = "gbtree",
                eval_metric         = "auc",
                eta                 = 0.02,
                max_depth           = 3,
                subsample           = 0.7,
                colsample_bytree    = 0.7,min_child_weight=10,maximize=T
                
)

model<-xgb.cv(dtrain,nrounds=400,verbose=T,params=param,nfold=5,
                                   early.stop.round = 15)
