1 Reading in the Data

ArcLakeGroupSummary <- read_excel("~/Desktop/EPSRC Project /ArcLakeGroupSummary.xlsx")
dundeedata <- read_csv("~/Desktop/EPSRC Project /dundeedata.csv.xls")

colnames(dundeedata)[1]<-"GloboLakes_ID" # change the GloboLID column name to GloboLakes_ID to make the merge easier.

Data<-merge(ArcLakeGroupSummary, dundeedata, by = "GloboLakes_ID", all = TRUE )
Data<-subset(Data, Group!="NA") # The data set is back to the original 732 rows just with extra columns of information

Data$Group<-as.factor(Data$Group)

2 For Longitutde + Latitude + OverallAvg

In order to use each model, I prepare a suitable data frame - splitting it into training and test sets and then splitting the training set into 5 folds.

Data2<-data.frame(Data[, c("Group", "Latitude", "Longitude", "OverallAvg")])

# Stratify the entire training set into training and test sets

set.seed(1)

library(caret)
train.index<-createDataPartition(Data2$Group, p=0.8, list = FALSE)
train.set<-Data2[train.index, ]
test.set<-Data2[-train.index, ]

# Stratify the training set into 5 folds

folds <- createFolds(y=factor(train.set$Group), k = 5, list = FALSE)
train.set$fold <- folds

3 Bayesian Optimization

Three main ways of choosing hyperparameters apart from selecting all possible combinations or just randomly performing a self selected sweep of what we think would perform well is to use a Grid Search, Random Search or Bayesian Optimization.

The upper confidence bound was used as the acquisition function.

The log of cost and gamma were used for reasons of scale.

3.1 SVM Linear Kernel

#linear

svm_fit_bayes<-function(logCost){
  
   CV.error<-NULL 
  
    for (i in 1:5) { 
    valid.data <- subset(train.set, fold == i)
    train.data <- subset(train.set, fold != i) 
    
    svmfit<-svm(Group~Longitude + Latitude + OverallAvg, data = train.data, kernel="linear", 
                cost=exp(logCost), scale= FALSE)
    
    svm.y<-valid.data$Group
    
    svm.predy<-predict(svmfit, valid.data)
    
    ith.test.error<- mean(svm.y!=svm.predy) 
    
    CV.error<-c(CV.error,(nrow(valid.data)/nrow(train.set))*ith.test.error)  
    }
   
   list(Score=-sum(CV.error), pred=0)

}

set.seed(1)

OPT_Res<- BayesianOptimization(svm_fit_bayes, bounds= list(logCost = c(-5, 20)),
                               init_grid_dt = NULL, init_points = 50, 
                               n_iter = 20, acq = "ucb", kappa =2.576,
                               eps=0, verbose = TRUE)
## elapsed = 1.30   Round = 1   logCost = 1.6377    Value = -0.0492 
## elapsed = 6.24   Round = 2   logCost = 4.3031    Value = -0.0525 
## elapsed = 12.65  Round = 3   logCost = 9.3213    Value = -0.0644 
## elapsed = 14.44  Round = 4   logCost = 17.7052   Value = -0.0831 
## elapsed = 0.43   Round = 5   logCost = 0.0420    Value = -0.0525 
## elapsed = 14.95  Round = 6   logCost = 17.4597   Value = -0.0864 
## elapsed = 14.81  Round = 7   logCost = 18.6169   Value = -0.1000 
## elapsed = 13.43  Round = 8   logCost = 11.5199   Value = -0.0847 
## elapsed = 13.21  Round = 9   logCost = 10.7279   Value = -0.0949 
## elapsed = 0.15   Round = 10  logCost = -3.4553   Value = -0.0847 
## elapsed = 0.41   Round = 11  logCost = 0.1494    Value = -0.0525 
## elapsed = 0.33   Round = 12  logCost = -0.5861   Value = -0.0475 
## elapsed = 13.67  Round = 13  logCost = 12.1756   Value = -0.0712 
## elapsed = 4.75   Round = 14  logCost = 4.6026    Value = -0.0559 
## elapsed = 13.87  Round = 15  logCost = 14.2460   Value = -0.0864 
## elapsed = 11.19  Round = 16  logCost = 7.4425    Value = -0.0695 
## elapsed = 13.72  Round = 17  logCost = 12.9405   Value = -0.1034 
## elapsed = 14.50  Round = 18  logCost = 19.7977   Value = -0.0847 
## elapsed = 5.06   Round = 19  logCost = 4.5009    Value = -0.0525 
## elapsed = 13.96  Round = 20  logCost = 14.4361   Value = -0.1220 
## elapsed = 14.11  Round = 21  logCost = 18.3676   Value = -0.0898 
## elapsed = 0.31   Round = 22  logCost = 0.3036    Value = -0.0492 
## elapsed = 13.75  Round = 23  logCost = 11.2918   Value = -0.1102 
## elapsed = 0.17   Round = 24  logCost = -1.8611   Value = -0.0661 
## elapsed = 0.66   Round = 25  logCost = 1.6805    Value = -0.0492 
## elapsed = 4.74   Round = 26  logCost = 4.6529    Value = -0.0542 
## elapsed = 0.12   Round = 27  logCost = -4.6652   Value = -0.1186 
## elapsed = 4.63   Round = 28  logCost = 4.5597    Value = -0.0576 
## elapsed = 14.79  Round = 29  logCost = 16.7423   Value = -0.1119 
## elapsed = 2.93   Round = 30  logCost = 3.5087    Value = -0.0542 
## elapsed = 11.50  Round = 31  logCost = 7.0520    Value = -0.0881 
## elapsed = 13.01  Round = 32  logCost = 9.9891    Value = -0.0966 
## elapsed = 11.45  Round = 33  logCost = 7.3385    Value = -0.0508 
## elapsed = 0.47   Round = 34  logCost = -0.3446   Value = -0.0492 
## elapsed = 14.55  Round = 35  logCost = 15.6843   Value = -0.0780 
## elapsed = 13.56  Round = 36  logCost = 11.7117   Value = -0.0814 
## elapsed = 13.96  Round = 37  logCost = 14.8560   Value = -0.1068 
## elapsed = 0.19   Round = 38  logCost = -2.3014   Value = -0.0610 
## elapsed = 13.94  Round = 39  logCost = 13.0928   Value = -0.0814 
## elapsed = 7.71   Round = 40  logCost = 5.2819    Value = -0.0542 
## elapsed = 14.14  Round = 41  logCost = 15.5237   Value = -0.0949 
## elapsed = 13.45  Round = 42  logCost = 11.1765   Value = -0.1186 
## elapsed = 14.23  Round = 43  logCost = 14.5733   Value = -0.1000 
## elapsed = 12.26  Round = 44  logCost = 8.8259    Value = -0.0932 
## elapsed = 11.99  Round = 45  logCost = 8.2430    Value = -0.0610 
## elapsed = 13.96  Round = 46  logCost = 14.7339   Value = -0.0881 
## elapsed = 0.13   Round = 47  logCost = -4.4167   Value = -0.1034 
## elapsed = 11.64  Round = 48  logCost = 6.9308    Value = -0.0627 
## elapsed = 13.74  Round = 49  logCost = 13.3078   Value = -0.1051 
## elapsed = 13.99  Round = 50  logCost = 12.3183   Value = -0.0627 
## elapsed = 0.86   Round = 51  logCost = 2.6189    Value = -0.0508 
## elapsed = 0.92   Round = 52  logCost = 2.1496    Value = -0.0525 
## elapsed = 3.18   Round = 53  logCost = 3.6129    Value = -0.0525 
## elapsed = 0.98   Round = 54  logCost = 1.6401    Value = -0.0492 
## elapsed = 0.86   Round = 55  logCost = 2.4664    Value = -0.0508 
## elapsed = 0.72   Round = 56  logCost = 2.0071    Value = -0.0525 
## elapsed = 0.76   Round = 57  logCost = 1.7597    Value = -0.0508 
## elapsed = 0.62   Round = 58  logCost = 1.2935    Value = -0.0508 
## elapsed = 1.00   Round = 59  logCost = 2.1697    Value = -0.0525 
## elapsed = 1.44   Round = 60  logCost = 1.6486    Value = -0.0492 
## elapsed = 1.67   Round = 61  logCost = 2.3679    Value = -0.0508 
## elapsed = 0.97   Round = 62  logCost = 2.5041    Value = -0.0508 
## elapsed = 1.15   Round = 63  logCost = 2.4532    Value = -0.0508 
## elapsed = 1.16   Round = 64  logCost = 2.0639    Value = -0.0525 
## elapsed = 1.18   Round = 65  logCost = 2.1419    Value = -0.0525 
## elapsed = 1.09   Round = 66  logCost = 2.6186    Value = -0.0508 
## elapsed = 1.30   Round = 67  logCost = 2.1561    Value = -0.0525 
## elapsed = 1.06   Round = 68  logCost = 2.5222    Value = -0.0508 
## elapsed = 0.83   Round = 69  logCost = 1.7399    Value = -0.0492 
## elapsed = 0.49   Round = 70  logCost = 0.9132    Value = -0.0508 
## 
##  Best Parameters Found: 
## Round = 12   logCost = -0.5861   Value = -0.0475
  OPT_Res$Best_Par
##    logCost 
## -0.5860812
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 0.5565039
      CV.error<-NULL 
  
    for (i in 1:5) { 
    valid.data <- subset(train.set, fold == i)
    train.data <- subset(train.set, fold != i) 
    
    svmfit<-svm(Group~Longitude + Latitude + OverallAvg, data = train.data, kernel="linear", 
                cost=exp(OPT_Res$Best_Par["logCost"]), scale = FALSE)
    
    svm.y<-valid.data$Group
    
    svm.predy<-predict(svmfit, valid.data)
    
    ith.test.error<- mean(svm.y!=svm.predy) 
    
    CV.error<-c(CV.error,(nrow(valid.data)/nrow(train.set))*ith.test.error)  
  }
  
  sum(CV.error)
## [1] 0.04745763

3.2 SVM polynomial kernel

svm_fit_bayes<-function(logCost, logGamma, Degree){
  
   CV.error<-NULL 
  
    for (i in 1:5) { 
    valid.data <- subset(train.set, fold == i)
    train.data <- subset(train.set, fold != i) 
    
    svmfit<-svm(Group~Longitude + Latitude + OverallAvg, data = train.data, kernel="polynomial", 
                cost=exp(logCost), gamma=exp(logGamma), degree=Degree)
    
    svm.y<-valid.data$Group
    
    svm.predy<-predict(svmfit, valid.data)
    
    ith.test.error<- mean(svm.y!=svm.predy) 
    
    CV.error<-c(CV.error,(nrow(valid.data)/nrow(train.set))*ith.test.error)  
    }
   
   list(Score=-sum(CV.error), pred=0)

}

set.seed(1)

OPT_Res<- BayesianOptimization(svm_fit_bayes, bounds= list(logCost = c(-5, 20),
                                                           logGamma = c(-9, -0.75),
                                                           Degree = c(1L, 5L)),
                               init_grid_dt = NULL, init_points = 50, 
                               n_iter = 20, acq = "ucb", kappa =2.576,
                               eps=0, verbose = TRUE)
## elapsed = 0.13   Round = 1   logCost = 1.6377    logGamma = -5.0596  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.09   Round = 2   logCost = 4.3031    logGamma = -1.8950  Degree = 2.0000 Value = -0.1034 
## elapsed = 0.10   Round = 3   logCost = 9.3213    logGamma = -5.3857  Degree = 2.0000 Value = -0.1644 
## elapsed = 0.12   Round = 4   logCost = 17.7052   logGamma = -6.9804  Degree = 5.0000 Value = -0.6678 
## elapsed = 0.13   Round = 5   logCost = 0.0420    logGamma = -8.4169  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.09   Round = 6   logCost = 17.4597   logGamma = -8.1794  Degree = 2.0000 Value = -0.0915 
## elapsed = 0.11   Round = 7   logCost = 18.6169   logGamma = -6.3908  Degree = 2.0000 Value = -0.0695 
## elapsed = 0.08   Round = 8   logCost = 11.5199   logGamma = -4.7213  Degree = 3.0000 Value = -0.1593 
## elapsed = 0.10   Round = 9   logCost = 10.7279   logGamma = -3.5385  Degree = 5.0000 Value = -0.3407 
## elapsed = 0.13   Round = 10  logCost = -3.4553   logGamma = -5.6437  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.11   Round = 11  logCost = 0.1494    logGamma = -1.4688  Degree = 5.0000 Value = -0.3559 
## elapsed = 0.13   Round = 12  logCost = -0.5861   logGamma = -6.5778  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.08   Round = 13  logCost = 12.1756   logGamma = -5.2127  Degree = 2.0000 Value = -0.0881 
## elapsed = 0.13   Round = 14  logCost = 4.6026    logGamma = -6.2577  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.14   Round = 15  logCost = 14.2460   logGamma = -3.6303  Degree = 2.0000 Value = -0.0729 
## elapsed = 0.08   Round = 16  logCost = 7.4425    logGamma = -6.8714  Degree = 1.0000 Value = -0.0797 
## elapsed = 0.12   Round = 17  logCost = 12.9405   logGamma = -5.0520  Degree = 4.0000 Value = -0.4102 
## elapsed = 12.35  Round = 18  logCost = 19.7977   logGamma = -2.6779  Degree = 1.0000 Value = -0.0610 
## elapsed = 0.13   Round = 19  logCost = 4.5009    logGamma = -8.3050  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.81   Round = 20  logCost = 14.4361   logGamma = -1.7786  Degree = 4.0000 Value = -0.0898 
## elapsed = 0.13   Round = 21  logCost = 18.3676   logGamma = -6.2026  Degree = 5.0000 Value = -0.6186 
## elapsed = 0.12   Round = 22  logCost = 0.3036    logGamma = -2.0746  Degree = 3.0000 Value = -0.4136 
## elapsed = 0.12   Round = 23  logCost = 11.2918   logGamma = -6.1399  Degree = 3.0000 Value = -0.4712 
## elapsed = 0.12   Round = 24  logCost = -1.8611   logGamma = -6.2464  Degree = 2.0000 Value = -0.6678 
## elapsed = 0.13   Round = 25  logCost = 1.6805    logGamma = -5.0701  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.12   Round = 26  logCost = 4.6529    logGamma = -1.6394  Degree = 3.0000 Value = -0.0814 
## elapsed = 0.13   Round = 27  logCost = -4.6652   logGamma = -1.8692  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.12   Round = 28  logCost = 4.5597    logGamma = -5.7826  Degree = 2.0000 Value = -0.6610 
## elapsed = 2.77   Round = 29  logCost = 16.7423   logGamma = -2.5871  Degree = 2.0000 Value = -0.0831 
## elapsed = 0.08   Round = 30  logCost = 3.5087    logGamma = -1.0749  Degree = 3.0000 Value = -0.0898 
## elapsed = 0.13   Round = 31  logCost = 7.0520    logGamma = -5.4141  Degree = 3.0000 Value = -0.6424 
## elapsed = 0.08   Round = 32  logCost = 9.9891    logGamma = -3.1218  Degree = 1.0000 Value = -0.0475 
## elapsed = 0.08   Round = 33  logCost = 7.3385    logGamma = -5.7000  Degree = 1.0000 Value = -0.0661 
## elapsed = 0.15   Round = 34  logCost = -0.3446   logGamma = -6.3158  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.08   Round = 35  logCost = 15.6843   logGamma = -2.7540  Degree = 5.0000 Value = -0.0831 
## elapsed = 0.12   Round = 36  logCost = 11.7117   logGamma = -7.3278  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.09   Round = 37  logCost = 14.8560   logGamma = -3.1332  Degree = 3.0000 Value = -0.0644 
## elapsed = 0.12   Round = 38  logCost = -2.3014   logGamma = -7.9960  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.13   Round = 39  logCost = 13.0928   logGamma = -6.9747  Degree = 5.0000 Value = -0.6678 
## elapsed = 0.11   Round = 40  logCost = 5.2819    logGamma = -7.8177  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.13   Round = 41  logCost = 15.5237   logGamma = -7.0231  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.11   Round = 42  logCost = 11.1765   logGamma = -8.5138  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.12   Round = 43  logCost = 14.5733   logGamma = -3.7011  Degree = 2.0000 Value = -0.0729 
## elapsed = 0.11   Round = 44  logCost = 8.8259    logGamma = -1.7708  Degree = 2.0000 Value = -0.0729 
## elapsed = 0.09   Round = 45  logCost = 8.2430    logGamma = -2.5740  Degree = 4.0000 Value = -0.1373 
## elapsed = 0.20   Round = 46  logCost = 14.7339   logGamma = -2.4222  Degree = 3.0000 Value = -0.0593 
## elapsed = 0.13   Round = 47  logCost = -4.4167   logGamma = -5.2440  Degree = 2.0000 Value = -0.6678 
## elapsed = 0.13   Round = 48  logCost = 6.9308    logGamma = -5.6168  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.61   Round = 49  logCost = 13.3078   logGamma = -2.3103  Degree = 1.0000 Value = -0.0492 
## elapsed = 0.11   Round = 50  logCost = 12.3183   logGamma = -4.0093  Degree = 4.0000 Value = -0.1898 
## elapsed = 0.36   Round = 51  logCost = 20.0000   logGamma = -1.6626  Degree = 5.0000 Value = -0.0695 
## elapsed = 0.59   Round = 52  logCost = 20.0000   logGamma = -9.0000  Degree = 1.0000 Value = -0.0492 
## elapsed = 7.54   Round = 53  logCost = 19.2744   logGamma = -5.0217  Degree = 1.0000 Value = -0.1051 
## elapsed = 0.06   Round = 54  logCost = 10.4309   logGamma = -5.9753  Degree = 1.0000 Value = -0.0492 
## elapsed = 12.07  Round = 55  logCost = 16.7631   logGamma = -0.7500  Degree = 1.0000 Value = -0.0644 
## elapsed = 0.11   Round = 56  logCost = 8.6485    logGamma = -0.7500  Degree = 3.0000 Value = -0.0559 
## elapsed = 0.06   Round = 57  logCost = 6.0472    logGamma = -0.7500  Degree = 1.0000 Value = -0.0475 
## elapsed = 0.09   Round = 58  logCost = 20.0000   logGamma = -9.0000  Degree = 2.0000 Value = -0.0814 
## elapsed = 6.36   Round = 59  logCost = 20.0000   logGamma = -0.7500  Degree = 3.0000 Value = -0.0661 
## elapsed = 0.09   Round = 60  logCost = 6.0879    logGamma = -0.7500  Degree = 5.0000 Value = -0.0814 
## elapsed = 0.62   Round = 61  logCost = 11.7751   logGamma = -0.7500  Degree = 1.0000 Value = -0.0492 
## elapsed = 0.68   Round = 62  logCost = 20.0000   logGamma = -2.8379  Degree = 4.0000 Value = -0.0898 
## elapsed = 0.09   Round = 63  logCost = 1.6812    logGamma = -0.7500  Degree = 1.0000 Value = -0.0729 
## elapsed = 0.35   Round = 64  logCost = 17.6692   logGamma = -7.1702  Degree = 1.0000 Value = -0.0492 
## elapsed = 13.36  Round = 65  logCost = 20.0000   logGamma = -0.7500  Degree = 1.0000 Value = -0.2305 
## elapsed = 6.68   Round = 66  logCost = 18.1262   logGamma = -0.7500  Degree = 4.0000 Value = -0.0898 
## elapsed = 0.07   Round = 67  logCost = 16.3781   logGamma = -9.0000  Degree = 1.0000 Value = -0.0475 
## elapsed = 9.85   Round = 68  logCost = 14.1569   logGamma = -0.7500  Degree = 2.0000 Value = -0.0814 
## elapsed = 6.26   Round = 69  logCost = 20.0000   logGamma = -3.8237  Degree = 2.0000 Value = -0.0814 
## elapsed = 0.09   Round = 70  logCost = 5.4847    logGamma = -0.7500  Degree = 2.0000 Value = -0.0729 
## 
##  Best Parameters Found: 
## Round = 32   logCost = 9.9891    logGamma = -3.1218  Degree = 1.0000 Value = -0.0475
  OPT_Res$Best_Par
##   logCost  logGamma    Degree 
##  9.989146 -3.121754  1.000000
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 21788.68
  as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.04407979
      CV.error<-NULL 
  
    for (i in 1:5) { 
    valid.data <- subset(train.set, fold == i)
    train.data <- subset(train.set, fold != i) 
    
    svmfit<-svm(Group~Longitude + Latitude + OverallAvg, data = train.data, kernel="polynomial", 
                cost=exp(OPT_Res$Best_Par["logCost"]), 
                gamma=exp(OPT_Res$Best_Par["logGamma"]), 
                degree=OPT_Res$Best_Par["Degree"])
    
    svm.y<-valid.data$Group
    
    svm.predy<-predict(svmfit, valid.data)
    
    ith.test.error<- mean(svm.y!=svm.predy) 
    
    CV.error<-c(CV.error,(nrow(valid.data)/nrow(train.set))*ith.test.error)  
  }
  
  sum(CV.error)
## [1] 0.04745763

3.3 SVM Radial Kernel

svm_fit_bayes<-function(logCost, logGamma){
  
   CV.error<-NULL 
  
    for (i in 1:5) { 
    valid.data <- subset(train.set, fold == i)
    train.data <- subset(train.set, fold != i) 
    
    svmfit<-svm(Group~Longitude + Latitude + OverallAvg, data = train.data, kernel="radial", 
                cost=exp(logCost), gamma=exp(logGamma))
    
    svm.y<-valid.data$Group
    
    svm.predy<-predict(svmfit, valid.data)
    
    ith.test.error<- mean(svm.y!=svm.predy) 
    
    CV.error<-c(CV.error,(nrow(valid.data)/nrow(train.set))*ith.test.error)  
    }
   
   list(Score=-sum(CV.error), pred=0)

}

set.seed(1)

OPT_Res<- BayesianOptimization(svm_fit_bayes, bounds= list(logCost = c(-5, 20),
                                                           logGamma = c(-9, -0.75)),
                               init_grid_dt = NULL, init_points = 50, 
                               n_iter = 20, acq = "ucb", kappa =2.576,
                               eps=0, verbose = TRUE)
## elapsed = 0.16   Round = 1   logCost = 1.6377    logGamma = -5.0596  Value = -0.3712 
## elapsed = 0.09   Round = 2   logCost = 4.3031    logGamma = -1.8950  Value = -0.0610 
## elapsed = 0.07   Round = 3   logCost = 9.3213    logGamma = -5.3857  Value = -0.0475 
## elapsed = 0.20   Round = 4   logCost = 17.7052   logGamma = -6.9804  Value = -0.0458 
## elapsed = 0.15   Round = 5   logCost = 0.0420    logGamma = -8.4169  Value = -0.6678 
## elapsed = 0.13   Round = 6   logCost = 17.4597   logGamma = -8.1794  Value = -0.0458 
## elapsed = 0.24   Round = 7   logCost = 18.6169   logGamma = -6.3908  Value = -0.0475 
## elapsed = 0.08   Round = 8   logCost = 11.5199   logGamma = -4.7213  Value = -0.0508 
## elapsed = 0.08   Round = 9   logCost = 10.7279   logGamma = -3.5385  Value = -0.0559 
## elapsed = 0.15   Round = 10  logCost = -3.4553   logGamma = -5.6437  Value = -0.6678 
## elapsed = 0.12   Round = 11  logCost = 0.1494    logGamma = -1.4688  Value = -0.1203 
## elapsed = 0.15   Round = 12  logCost = -0.5861   logGamma = -6.5778  Value = -0.6678 
## elapsed = 0.07   Round = 13  logCost = 12.1756   logGamma = -5.2127  Value = -0.0492 
## elapsed = 0.11   Round = 14  logCost = 4.6026    logGamma = -6.2577  Value = -0.1322 
## elapsed = 0.14   Round = 15  logCost = 14.2460   logGamma = -3.6303  Value = -0.0627 
## elapsed = 0.08   Round = 16  logCost = 7.4425    logGamma = -6.8714  Value = -0.0644 
## elapsed = 0.11   Round = 17  logCost = 12.9405   logGamma = -5.0520  Value = -0.0475 
## elapsed = 0.82   Round = 18  logCost = 19.7977   logGamma = -2.6779  Value = -0.0559 
## elapsed = 0.14   Round = 19  logCost = 4.5009    logGamma = -8.3050  Value = -0.4288 
## elapsed = 0.19   Round = 20  logCost = 14.4361   logGamma = -1.7786  Value = -0.0525 
## elapsed = 0.35   Round = 21  logCost = 18.3676   logGamma = -6.2026  Value = -0.0492 
## elapsed = 0.12   Round = 22  logCost = 0.3036    logGamma = -2.0746  Value = -0.1203 
## elapsed = 0.09   Round = 23  logCost = 11.2918   logGamma = -6.1399  Value = -0.0441 
## elapsed = 0.15   Round = 24  logCost = -1.8611   logGamma = -6.2464  Value = -0.6678 
## elapsed = 0.14   Round = 25  logCost = 1.6805    logGamma = -5.0701  Value = -0.3610 
## elapsed = 0.08   Round = 26  logCost = 4.6529    logGamma = -1.6394  Value = -0.0593 
## elapsed = 0.15   Round = 27  logCost = -4.6652   logGamma = -1.8692  Value = -0.6678 
## elapsed = 0.10   Round = 28  logCost = 4.5597    logGamma = -5.7826  Value = -0.1153 
## elapsed = 0.31   Round = 29  logCost = 16.7423   logGamma = -2.5871  Value = -0.0559 
## elapsed = 0.09   Round = 30  logCost = 3.5087    logGamma = -1.0749  Value = -0.0712 
## elapsed = 0.07   Round = 31  logCost = 7.0520    logGamma = -5.4141  Value = -0.0610 
## elapsed = 0.07   Round = 32  logCost = 9.9891    logGamma = -3.1218  Value = -0.0542 
## elapsed = 0.09   Round = 33  logCost = 7.3385    logGamma = -5.7000  Value = -0.0593 
## elapsed = 0.17   Round = 34  logCost = -0.3446   logGamma = -6.3158  Value = -0.6153 
## elapsed = 0.33   Round = 35  logCost = 15.6843   logGamma = -2.7540  Value = -0.0559 
## elapsed = 0.08   Round = 36  logCost = 11.7117   logGamma = -7.3278  Value = -0.0492 
## elapsed = 0.28   Round = 37  logCost = 14.8560   logGamma = -3.1332  Value = -0.0610 
## elapsed = 0.16   Round = 38  logCost = -2.3014   logGamma = -7.9960  Value = -0.6678 
## elapsed = 0.08   Round = 39  logCost = 13.0928   logGamma = -6.9747  Value = -0.0508 
## elapsed = 0.13   Round = 40  logCost = 5.2819    logGamma = -7.8177  Value = -0.1983 
## elapsed = 0.16   Round = 41  logCost = 15.5237   logGamma = -7.0231  Value = -0.0458 
## elapsed = 0.08   Round = 42  logCost = 11.1765   logGamma = -8.5138  Value = -0.0475 
## elapsed = 0.15   Round = 43  logCost = 14.5733   logGamma = -3.7011  Value = -0.0610 
## elapsed = 0.08   Round = 44  logCost = 8.8259    logGamma = -1.7708  Value = -0.0576 
## elapsed = 0.08   Round = 45  logCost = 8.2430    logGamma = -2.5740  Value = -0.0559 
## elapsed = 0.20   Round = 46  logCost = 14.7339   logGamma = -2.4222  Value = -0.0559 
## elapsed = 0.15   Round = 47  logCost = -4.4167   logGamma = -5.2440  Value = -0.6678 
## elapsed = 0.08   Round = 48  logCost = 6.9308    logGamma = -5.6168  Value = -0.0627 
## elapsed = 0.13   Round = 49  logCost = 13.3078   logGamma = -2.3103  Value = -0.0610 
## elapsed = 0.09   Round = 50  logCost = 12.3183   logGamma = -4.0093  Value = -0.0525 
## elapsed = 0.14   Round = 51  logCost = 20.0000   logGamma = -9.0000  Value = -0.0525 
## elapsed = 0.22   Round = 52  logCost = 18.7008   logGamma = -0.7500  Value = -0.0661 
## elapsed = 0.08   Round = 53  logCost = 6.6655    logGamma = -0.7500  Value = -0.0644 
## elapsed = 0.14   Round = 54  logCost = -1.1560   logGamma = -2.3671  Value = -0.4051 
## elapsed = 1.09   Round = 55  logCost = 20.0000   logGamma = -4.3638  Value = -0.0576 
## elapsed = 0.08   Round = 56  logCost = 14.2765   logGamma = -9.0000  Value = -0.0492 
## elapsed = 0.26   Round = 57  logCost = 20.0000   logGamma = -7.7984  Value = -0.0475 
## elapsed = 0.12   Round = 58  logCost = 11.4950   logGamma = -0.7500  Value = -0.0678 
## elapsed = 0.18   Round = 59  logCost = 20.0000   logGamma = -1.3903  Value = -0.0559 
## elapsed = 0.13   Round = 60  logCost = 8.5623    logGamma = -9.0000  Value = -0.0881 
## elapsed = 0.09   Round = 61  logCost = 16.7188   logGamma = -0.7500  Value = -0.0661 
## elapsed = 0.08   Round = 62  logCost = 4.5941    logGamma = -3.9330  Value = -0.0746 
## elapsed = 0.10   Round = 63  logCost = 17.1972   logGamma = -9.0000  Value = -0.0492 
## elapsed = 0.08   Round = 64  logCost = 1.6221    logGamma = -0.7500  Value = -0.0898 
## elapsed = 1.22   Round = 65  logCost = 18.1765   logGamma = -4.0207  Value = -0.0627 
## elapsed = 0.10   Round = 66  logCost = 18.6726   logGamma = -9.0000  Value = -0.0508 
## elapsed = 0.13   Round = 67  logCost = -5.0000   logGamma = -9.0000  Value = -0.6678 
## elapsed = 0.12   Round = 68  logCost = 2.8361    logGamma = -2.8227  Value = -0.0881 
## elapsed = 0.09   Round = 69  logCost = 13.8381   logGamma = -0.7500  Value = -0.0661 
## elapsed = 0.09   Round = 70  logCost = 10.1487   logGamma = -0.7500  Value = -0.0729 
## 
##  Best Parameters Found: 
## Round = 23   logCost = 11.2918   logGamma = -6.1399  Value = -0.0441
  OPT_Res$Best_Par
##   logCost  logGamma 
## 11.291844 -6.139861
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 80165.15
  as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.002155223
      CV.error<-NULL 
  
    for (i in 1:5) { 
    valid.data <- subset(train.set, fold == i)
    train.data <- subset(train.set, fold != i) 
    
    svmfit<-svm(Group~Longitude + Latitude + OverallAvg, data = train.data, kernel="radial", 
                cost=exp(OPT_Res$Best_Par["logCost"]), 
                gamma=exp(OPT_Res$Best_Par["logGamma"]))
    
    svm.y<-valid.data$Group
    
    svm.predy<-predict(svmfit, valid.data)
    
    ith.test.error<- mean(svm.y!=svm.predy) 
    
    CV.error<-c(CV.error,(nrow(valid.data)/nrow(train.set))*ith.test.error)  
  }
  
  sum(CV.error)
## [1] 0.0440678