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 PC1 + PC2

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

Data1<-data.frame(Data[,c("Group","PC1","PC2")])

# Stratify the entire training set into training and test sets

set.seed(35)

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

# Stratify the training set into 5 folds

set.seed(35)

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~PC1+PC2, 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 = 0.07   Round = 1   logCost = 1.6377    Value = -0.0305 
## elapsed = 0.20   Round = 2   logCost = 4.3031    Value = -0.0305 
## elapsed = 2.41   Round = 3   logCost = 9.3213    Value = -0.0305 
## elapsed = 7.98   Round = 4   logCost = 17.7052   Value = -0.0356 
## elapsed = 0.05   Round = 5   logCost = 0.0420    Value = -0.0305 
## elapsed = 7.84   Round = 6   logCost = 17.4597   Value = -0.0356 
## elapsed = 7.89   Round = 7   logCost = 18.6169   Value = -0.0390 
## elapsed = 6.11   Round = 8   logCost = 11.5199   Value = -0.0339 
## elapsed = 4.98   Round = 9   logCost = 10.7279   Value = -0.0305 
## elapsed = 0.05   Round = 10  logCost = -3.4553   Value = -0.0305 
## elapsed = 0.07   Round = 11  logCost = 0.1494    Value = -0.0288 
## elapsed = 0.05   Round = 12  logCost = -0.5861   Value = -0.0288 
## elapsed = 6.07   Round = 13  logCost = 12.1756   Value = -0.0356 
## elapsed = 0.26   Round = 14  logCost = 4.6026    Value = -0.0305 
## elapsed = 6.64   Round = 15  logCost = 14.2460   Value = -0.0373 
## elapsed = 1.25   Round = 16  logCost = 7.4425    Value = -0.0305 
## elapsed = 8.00   Round = 17  logCost = 12.9405   Value = -0.0322 
## elapsed = 8.08   Round = 18  logCost = 19.7977   Value = -0.0390 
## elapsed = 0.23   Round = 19  logCost = 4.5009    Value = -0.0305 
## elapsed = 6.68   Round = 20  logCost = 14.4361   Value = -0.0373 
## elapsed = 7.75   Round = 21  logCost = 18.3676   Value = -0.0390 
## elapsed = 0.05   Round = 22  logCost = 0.3036    Value = -0.0305 
## elapsed = 6.03   Round = 23  logCost = 11.2918   Value = -0.0322 
## elapsed = 0.05   Round = 24  logCost = -1.8611   Value = -0.0288 
## elapsed = 0.05   Round = 25  logCost = 1.6805    Value = -0.0305 
## elapsed = 0.26   Round = 26  logCost = 4.6529    Value = -0.0305 
## elapsed = 0.04   Round = 27  logCost = -4.6652   Value = -0.0339 
## elapsed = 0.23   Round = 28  logCost = 4.5597    Value = -0.0305 
## elapsed = 8.51   Round = 29  logCost = 16.7423   Value = -0.0339 
## elapsed = 0.10   Round = 30  logCost = 3.5087    Value = -0.0305 
## elapsed = 1.04   Round = 31  logCost = 7.0520    Value = -0.0305 
## elapsed = 3.34   Round = 32  logCost = 9.9891    Value = -0.0305 
## elapsed = 1.15   Round = 33  logCost = 7.3385    Value = -0.0305 
## elapsed = 0.05   Round = 34  logCost = -0.3446   Value = -0.0305 
## elapsed = 7.27   Round = 35  logCost = 15.6843   Value = -0.0373 
## elapsed = 7.14   Round = 36  logCost = 11.7117   Value = -0.0339 
## elapsed = 7.43   Round = 37  logCost = 14.8560   Value = -0.0373 
## elapsed = 0.05   Round = 38  logCost = -2.3014   Value = -0.0254 
## elapsed = 7.58   Round = 39  logCost = 13.0928   Value = -0.0356 
## elapsed = 0.44   Round = 40  logCost = 5.2819    Value = -0.0305 
## elapsed = 7.61   Round = 41  logCost = 15.5237   Value = -0.0356 
## elapsed = 5.86   Round = 42  logCost = 11.1765   Value = -0.0322 
## elapsed = 7.41   Round = 43  logCost = 14.5733   Value = -0.0356 
## elapsed = 2.96   Round = 44  logCost = 8.8259    Value = -0.0305 
## elapsed = 2.32   Round = 45  logCost = 8.2430    Value = -0.0339 
## elapsed = 7.79   Round = 46  logCost = 14.7339   Value = -0.0356 
## elapsed = 0.06   Round = 47  logCost = -4.4167   Value = -0.0373 
## elapsed = 0.94   Round = 48  logCost = 6.9308    Value = -0.0305 
## elapsed = 8.67   Round = 49  logCost = 13.3078   Value = -0.0339 
## elapsed = 6.67   Round = 50  logCost = 12.3183   Value = -0.0339 
## elapsed = 0.04   Round = 51  logCost = -0.9544   Value = -0.0288 
## elapsed = 0.12   Round = 52  logCost = 3.7780    Value = -0.0305 
## elapsed = 0.05   Round = 53  logCost = 0.3124    Value = -0.0305 
## elapsed = 0.06   Round = 54  logCost = 1.7342    Value = -0.0305 
## elapsed = 0.04   Round = 55  logCost = -0.8971   Value = -0.0288 
## elapsed = 0.05   Round = 56  logCost = 1.2791    Value = -0.0305 
## elapsed = 0.23   Round = 57  logCost = 4.6000    Value = -0.0305 
## elapsed = 0.06   Round = 58  logCost = 2.3737    Value = -0.0305 
## elapsed = 0.06   Round = 59  logCost = 1.3385    Value = -0.0305 
## elapsed = 0.08   Round = 60  logCost = 2.8489    Value = -0.0305 
## elapsed = 0.09   Round = 61  logCost = 3.1059    Value = -0.0305 
## elapsed = 0.04   Round = 62  logCost = -1.1882   Value = -0.0288 
## elapsed = 0.99   Round = 63  logCost = 5.8762    Value = -0.0305 
## elapsed = 0.06   Round = 64  logCost = 1.7215    Value = -0.0305 
## elapsed = 0.07   Round = 65  logCost = 2.4908    Value = -0.0305 
## elapsed = 0.08   Round = 66  logCost = -0.7980   Value = -0.0305 
## elapsed = 0.07   Round = 67  logCost = 1.6407    Value = -0.0305 
## elapsed = 0.06   Round = 68  logCost = 1.5699    Value = -0.0305 
## elapsed = 0.12   Round = 69  logCost = 3.5751    Value = -0.0305 
## elapsed = 0.10   Round = 70  logCost = 3.1562    Value = -0.0305 
## 
##  Best Parameters Found: 
## Round = 38   logCost = -2.3014   Value = -0.0254
  OPT_Res$Best_Par
##   logCost 
## -2.301409
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 0.1001176
      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~PC1+PC2, data = train.data, kernel="linear", 
                cost=0.03589176, 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.03050847

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~PC1+PC2, 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.12   Round = 1   logCost = 1.6377    logGamma = -5.0596  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.07   Round = 2   logCost = 4.3031    logGamma = -1.8950  Degree = 2.0000 Value = -0.1102 
## elapsed = 0.08   Round = 3   logCost = 9.3213    logGamma = -5.3857  Degree = 2.0000 Value = -0.1763 
## elapsed = 0.14   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.1017 
## elapsed = 0.11   Round = 7   logCost = 18.6169   logGamma = -6.3908  Degree = 2.0000 Value = -0.0780 
## elapsed = 0.08   Round = 8   logCost = 11.5199   logGamma = -4.7213  Degree = 3.0000 Value = -0.1475 
## elapsed = 0.10   Round = 9   logCost = 10.7279   logGamma = -3.5385  Degree = 5.0000 Value = -0.3475 
## elapsed = 0.12   Round = 10  logCost = -3.4553   logGamma = -5.6437  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.12   Round = 11  logCost = 0.1494    logGamma = -1.4688  Degree = 5.0000 Value = -0.3610 
## elapsed = 0.14   Round = 12  logCost = -0.5861   logGamma = -6.5778  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.09   Round = 13  logCost = 12.1756   logGamma = -5.2127  Degree = 2.0000 Value = -0.0915 
## elapsed = 0.14   Round = 14  logCost = 4.6026    logGamma = -6.2577  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.22   Round = 15  logCost = 14.2460   logGamma = -3.6303  Degree = 2.0000 Value = -0.0729 
## elapsed = 0.07   Round = 16  logCost = 7.4425    logGamma = -6.8714  Degree = 1.0000 Value = -0.0559 
## elapsed = 0.13   Round = 17  logCost = 12.9405   logGamma = -5.0520  Degree = 4.0000 Value = -0.4542 
## elapsed = 8.82   Round = 18  logCost = 19.7977   logGamma = -2.6779  Degree = 1.0000 Value = -0.0322 
## elapsed = 0.13   Round = 19  logCost = 4.5009    logGamma = -8.3050  Degree = 3.0000 Value = -0.6678 
## elapsed = 5.72   Round = 20  logCost = 14.4361   logGamma = -1.7786  Degree = 4.0000 Value = -0.0763 
## elapsed = 0.12   Round = 21  logCost = 18.3676   logGamma = -6.2026  Degree = 5.0000 Value = -0.6610 
## elapsed = 0.11   Round = 22  logCost = 0.3036    logGamma = -2.0746  Degree = 3.0000 Value = -0.4153 
## elapsed = 0.11   Round = 23  logCost = 11.2918   logGamma = -6.1399  Degree = 3.0000 Value = -0.4983 
## elapsed = 0.12   Round = 24  logCost = -1.8611   logGamma = -6.2464  Degree = 2.0000 Value = -0.6678 
## elapsed = 0.12   Round = 25  logCost = 1.6805    logGamma = -5.0701  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.07   Round = 26  logCost = 4.6529    logGamma = -1.6394  Degree = 3.0000 Value = -0.0797 
## elapsed = 0.12   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.6678 
## elapsed = 9.67   Round = 29  logCost = 16.7423   logGamma = -2.5871  Degree = 2.0000 Value = -0.0746 
## elapsed = 0.07   Round = 30  logCost = 3.5087    logGamma = -1.0749  Degree = 3.0000 Value = -0.0695 
## elapsed = 0.12   Round = 31  logCost = 7.0520    logGamma = -5.4141  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.07   Round = 32  logCost = 9.9891    logGamma = -3.1218  Degree = 1.0000 Value = -0.0356 
## elapsed = 0.07   Round = 33  logCost = 7.3385    logGamma = -5.7000  Degree = 1.0000 Value = -0.0508 
## elapsed = 0.14   Round = 34  logCost = -0.3446   logGamma = -6.3158  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.07   Round = 35  logCost = 15.6843   logGamma = -2.7540  Degree = 5.0000 Value = -0.0627 
## elapsed = 0.14   Round = 36  logCost = 11.7117   logGamma = -7.3278  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.07   Round = 37  logCost = 14.8560   logGamma = -3.1332  Degree = 3.0000 Value = -0.0339 
## 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.14   Round = 40  logCost = 5.2819    logGamma = -7.8177  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.15   Round = 41  logCost = 15.5237   logGamma = -7.0231  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.13   Round = 42  logCost = 11.1765   logGamma = -8.5138  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.43   Round = 43  logCost = 14.5733   logGamma = -3.7011  Degree = 2.0000 Value = -0.0712 
## elapsed = 0.10   Round = 44  logCost = 8.8259    logGamma = -1.7708  Degree = 2.0000 Value = -0.0780 
## elapsed = 0.09   Round = 45  logCost = 8.2430    logGamma = -2.5740  Degree = 4.0000 Value = -0.1898 
## elapsed = 0.06   Round = 46  logCost = 14.7339   logGamma = -2.4222  Degree = 3.0000 Value = -0.0288 
## elapsed = 0.12   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.22   Round = 49  logCost = 13.3078   logGamma = -2.3103  Degree = 1.0000 Value = -0.0356 
## elapsed = 0.10   Round = 50  logCost = 12.3183   logGamma = -4.0093  Degree = 4.0000 Value = -0.2373 
## elapsed = 2.54   Round = 51  logCost = 19.0001   logGamma = -0.7500  Degree = 5.0000 Value = -0.0390 
## elapsed = 0.06   Round = 52  logCost = 11.0784   logGamma = -6.4776  Degree = 1.0000 Value = -0.0373 
## elapsed = 0.05   Round = 53  logCost = 9.5671    logGamma = -0.7500  Degree = 3.0000 Value = -0.0322 
## elapsed = 0.49   Round = 54  logCost = 17.9562   logGamma = -5.2221  Degree = 1.0000 Value = -0.0356 
## elapsed = 6.04   Round = 55  logCost = 16.9602   logGamma = -0.7500  Degree = 1.0000 Value = -0.0373 
## elapsed = 0.25   Round = 56  logCost = 20.0000   logGamma = -9.0000  Degree = 1.0000 Value = -0.0356 
## elapsed = 0.06   Round = 57  logCost = 5.7929    logGamma = -0.7500  Degree = 1.0000 Value = -0.0339 
## elapsed = 4.81   Round = 58  logCost = 20.0000   logGamma = -0.7500  Degree = 3.0000 Value = -0.0305 
## elapsed = 16.48  Round = 59  logCost = 20.0000   logGamma = -2.0768  Degree = 4.0000 Value = -0.0881 
## elapsed = 0.07   Round = 60  logCost = 1.0332    logGamma = -0.7500  Degree = 1.0000 Value = -0.0593 
## elapsed = 0.07   Round = 61  logCost = 20.0000   logGamma = -9.0000  Degree = 2.0000 Value = -0.0915 
## elapsed = 0.27   Round = 62  logCost = 11.5744   logGamma = -0.7500  Degree = 1.0000 Value = -0.0356 
## elapsed = 0.08   Round = 63  logCost = 15.7501   logGamma = -9.0000  Degree = 1.0000 Value = -0.0356 
## elapsed = 0.08   Round = 64  logCost = 10.2069   logGamma = -9.0000  Degree = 1.0000 Value = -0.0508 
## elapsed = 0.20   Round = 65  logCost = 15.0701   logGamma = -0.7500  Degree = 5.0000 Value = -0.0356 
## elapsed = 0.13   Round = 66  logCost = 5.9117    logGamma = -0.7500  Degree = 4.0000 Value = -0.0898 
## elapsed = 0.08   Round = 67  logCost = 5.8787    logGamma = -0.7500  Degree = 2.0000 Value = -0.0780 
## elapsed = 15.55  Round = 68  logCost = 20.0000   logGamma = -3.6630  Degree = 2.0000 Value = -0.0780 
## elapsed = 54.96  Round = 69  logCost = 20.0000   logGamma = -0.7500  Degree = 2.0000 Value = -0.1102 
## elapsed = 0.10   Round = 70  logCost = 11.1988   logGamma = -2.4426  Degree = 3.0000 Value = -0.0373 
## 
##  Best Parameters Found: 
## Round = 46   logCost = 14.7339   logGamma = -2.4222  Degree = 3.0000 Value = -0.0288
  OPT_Res$Best_Par
##   logCost  logGamma    Degree 
## 14.733906 -2.422202  3.000000
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 2505267
  as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.08872601
      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~PC1+PC2, data = train.data, kernel="polynomial", 
                cost=1797909, 
                gamma=0.09669255, 
                degree=3)
    
    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.02881356

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~PC1+PC2, 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.11   Round = 1   logCost = 1.6377    logGamma = -5.0596  Value = -0.2339 
## elapsed = 0.06   Round = 2   logCost = 4.3031    logGamma = -1.8950  Value = -0.0424 
## elapsed = 0.05   Round = 3   logCost = 9.3213    logGamma = -5.3857  Value = -0.0390 
## elapsed = 0.08   Round = 4   logCost = 17.7052   logGamma = -6.9804  Value = -0.0373 
## elapsed = 0.15   Round = 5   logCost = 0.0420    logGamma = -8.4169  Value = -0.6678 
## elapsed = 0.06   Round = 6   logCost = 17.4597   logGamma = -8.1794  Value = -0.0356 
## elapsed = 0.11   Round = 7   logCost = 18.6169   logGamma = -6.3908  Value = -0.0407 
## elapsed = 0.06   Round = 8   logCost = 11.5199   logGamma = -4.7213  Value = -0.0322 
## elapsed = 0.06   Round = 9   logCost = 10.7279   logGamma = -3.5385  Value = -0.0322 
## elapsed = 0.15   Round = 10  logCost = -3.4553   logGamma = -5.6437  Value = -0.6678 
## elapsed = 0.08   Round = 11  logCost = 0.1494    logGamma = -1.4688  Value = -0.0814 
## elapsed = 0.16   Round = 12  logCost = -0.5861   logGamma = -6.5778  Value = -0.6678 
## elapsed = 0.07   Round = 13  logCost = 12.1756   logGamma = -5.2127  Value = -0.0322 
## elapsed = 0.11   Round = 14  logCost = 4.6026    logGamma = -6.2577  Value = -0.0864 
## elapsed = 0.15   Round = 15  logCost = 14.2460   logGamma = -3.6303  Value = -0.0305 
## elapsed = 0.08   Round = 16  logCost = 7.4425    logGamma = -6.8714  Value = -0.0508 
## elapsed = 0.10   Round = 17  logCost = 12.9405   logGamma = -5.0520  Value = -0.0339 
## elapsed = 2.51   Round = 18  logCost = 19.7977   logGamma = -2.6779  Value = -0.0373 
## elapsed = 0.13   Round = 19  logCost = 4.5009    logGamma = -8.3050  Value = -0.2966 
## elapsed = 0.14   Round = 20  logCost = 14.4361   logGamma = -1.7786  Value = -0.0339 
## elapsed = 0.14   Round = 21  logCost = 18.3676   logGamma = -6.2026  Value = -0.0356 
## elapsed = 0.09   Round = 22  logCost = 0.3036    logGamma = -2.0746  Value = -0.0915 
## elapsed = 0.09   Round = 23  logCost = 11.2918   logGamma = -6.1399  Value = -0.0322 
## elapsed = 0.16   Round = 24  logCost = -1.8611   logGamma = -6.2464  Value = -0.6678 
## elapsed = 0.14   Round = 25  logCost = 1.6805    logGamma = -5.0701  Value = -0.2169 
## elapsed = 0.08   Round = 26  logCost = 4.6529    logGamma = -1.6394  Value = -0.0407 
## elapsed = 0.16   Round = 27  logCost = -4.6652   logGamma = -1.8692  Value = -0.6678 
## elapsed = 0.13   Round = 28  logCost = 4.5597    logGamma = -5.7826  Value = -0.0780 
## elapsed = 0.59   Round = 29  logCost = 16.7423   logGamma = -2.5871  Value = -0.0356 
## elapsed = 0.07   Round = 30  logCost = 3.5087    logGamma = -1.0749  Value = -0.0407 
## elapsed = 0.08   Round = 31  logCost = 7.0520    logGamma = -5.4141  Value = -0.0475 
## elapsed = 0.14   Round = 32  logCost = 9.9891    logGamma = -3.1218  Value = -0.0322 
## elapsed = 0.12   Round = 33  logCost = 7.3385    logGamma = -5.7000  Value = -0.0475 
## elapsed = 0.21   Round = 34  logCost = -0.3446   logGamma = -6.3158  Value = -0.6678 
## elapsed = 0.24   Round = 35  logCost = 15.6843   logGamma = -2.7540  Value = -0.0322 
## elapsed = 0.07   Round = 36  logCost = 11.7117   logGamma = -7.3278  Value = -0.0322 
## elapsed = 0.27   Round = 37  logCost = 14.8560   logGamma = -3.1332  Value = -0.0339 
## elapsed = 0.23   Round = 38  logCost = -2.3014   logGamma = -7.9960  Value = -0.6678 
## elapsed = 0.07   Round = 39  logCost = 13.0928   logGamma = -6.9747  Value = -0.0339 
## elapsed = 0.15   Round = 40  logCost = 5.2819    logGamma = -7.8177  Value = -0.1085 
## elapsed = 0.13   Round = 41  logCost = 15.5237   logGamma = -7.0231  Value = -0.0356 
## elapsed = 0.07   Round = 42  logCost = 11.1765   logGamma = -8.5138  Value = -0.0407 
## elapsed = 0.12   Round = 43  logCost = 14.5733   logGamma = -3.7011  Value = -0.0305 
## elapsed = 0.08   Round = 44  logCost = 8.8259    logGamma = -1.7708  Value = -0.0305 
## elapsed = 0.07   Round = 45  logCost = 8.2430    logGamma = -2.5740  Value = -0.0356 
## elapsed = 0.25   Round = 46  logCost = 14.7339   logGamma = -2.4222  Value = -0.0339 
## elapsed = 0.16   Round = 47  logCost = -4.4167   logGamma = -5.2440  Value = -0.6678 
## elapsed = 0.09   Round = 48  logCost = 6.9308    logGamma = -5.6168  Value = -0.0475 
## elapsed = 0.12   Round = 49  logCost = 13.3078   logGamma = -2.3103  Value = -0.0322 
## elapsed = 0.06   Round = 50  logCost = 12.3183   logGamma = -4.0093  Value = -0.0322 
## elapsed = 0.08   Round = 51  logCost = 2.6654    logGamma = -3.2476  Value = -0.0644 
## elapsed = 1.18   Round = 52  logCost = 18.6754   logGamma = -0.7500  Value = -0.0475 
## elapsed = 0.08   Round = 53  logCost = 9.0811    logGamma = -9.0000  Value = -0.0525 
## elapsed = 0.07   Round = 54  logCost = 11.2149   logGamma = -0.7500  Value = -0.0339 
## elapsed = 0.07   Round = 55  logCost = 20.0000   logGamma = -9.0000  Value = -0.0390 
## elapsed = 0.13   Round = 56  logCost = 2.9422    logGamma = -6.2151  Value = -0.1831 
## elapsed = 0.08   Round = 57  logCost = 1.4967    logGamma = -0.7500  Value = -0.0542 
## elapsed = 0.06   Round = 58  logCost = 14.4978   logGamma = -9.0000  Value = -0.0322 
## elapsed = 0.05   Round = 59  logCost = 6.9866    logGamma = -0.7500  Value = -0.0322 
## elapsed = 0.17   Round = 60  logCost = 20.0000   logGamma = -5.8079  Value = -0.0322 
## elapsed = 0.08   Round = 61  logCost = 5.5536    logGamma = -4.8577  Value = -0.0525 
## elapsed = 1.06   Round = 62  logCost = 16.6835   logGamma = -0.7500  Value = -0.0458 
## elapsed = 0.07   Round = 63  logCost = 18.4271   logGamma = -9.0000  Value = -0.0424 
## elapsed = 1.35   Round = 64  logCost = 20.0000   logGamma = -0.7500  Value = -0.0441 
## elapsed = 0.06   Round = 65  logCost = 7.9145    logGamma = -0.7500  Value = -0.0322 
## elapsed = 0.06   Round = 66  logCost = 10.0687   logGamma = -0.7500  Value = -0.0339 
## elapsed = 0.06   Round = 67  logCost = 16.0291   logGamma = -9.0000  Value = -0.0356 
## elapsed = 0.09   Round = 68  logCost = 12.4479   logGamma = -0.7500  Value = -0.0339 
## elapsed = 0.07   Round = 69  logCost = 9.9829    logGamma = -9.0000  Value = -0.0508 
## elapsed = 0.70   Round = 70  logCost = 18.0659   logGamma = -2.8836  Value = -0.0373 
## 
##  Best Parameters Found: 
## Round = 15   logCost = 14.2460   logGamma = -3.6303  Value = -0.0305
  OPT_Res$Best_Par
##   logCost  logGamma 
## 14.246035 -3.630319
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 1538065
  as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.02650774
      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~PC1+PC2, data = train.data, kernel="radial", 
                cost=25718660, 
                gamma=0.0003379114)
    
    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.03559322