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(234)

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

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

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(234)

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 = 6.48   Round = 1   logCost = 13.6405   Value = -0.0186 
## elapsed = 11.07  Round = 2   logCost = 14.5428   Value = -0.0186 
## elapsed = 0.13   Round = 3   logCost = -4.4991   Value = -0.0254 
## elapsed = 8.99   Round = 4   logCost = 14.4021   Value = -0.0186 
## elapsed = 0.05   Round = 5   logCost = -3.3272   Value = -0.0153 
## elapsed = 2.84   Round = 6   logCost = 11.1199   Value = -0.0203 
## elapsed = 7.57   Round = 7   logCost = 18.2346   Value = -0.1034 
## elapsed = 5.17   Round = 8   logCost = 12.9411   Value = -0.0186 
## elapsed = 7.59   Round = 9   logCost = 18.1934   Value = -0.1034 
## elapsed = 0.06   Round = 10  logCost = 2.1058    Value = -0.0203 
## elapsed = 0.52   Round = 11  logCost = 8.8931    Value = -0.0203 
## elapsed = 0.48   Round = 12  logCost = 8.6925    Value = -0.0203 
## elapsed = 2.18   Round = 13  logCost = 9.5712    Value = -0.0220 
## elapsed = 2.01   Round = 14  logCost = 9.5747    Value = -0.0220 
## elapsed = 0.23   Round = 15  logCost = -4.9700   Value = -0.0220 
## elapsed = 1.05   Round = 16  logCost = 6.0279    Value = -0.0203 
## elapsed = 0.18   Round = 17  logCost = 2.8288    Value = -0.0203 
## elapsed = 10.93  Round = 18  logCost = 13.5004   Value = -0.0186 
## elapsed = 0.06   Round = 19  logCost = -1.5418   Value = -0.0186 
## elapsed = 7.64   Round = 20  logCost = 16.7944   Value = -0.1034 
## elapsed = 0.48   Round = 21  logCost = 8.0767    Value = -0.0203 
## elapsed = 1.67   Round = 22  logCost = 9.4776    Value = -0.0220 
## elapsed = 7.16   Round = 23  logCost = 16.6300   Value = -0.1034 
## elapsed = 1.98   Round = 24  logCost = 10.4356   Value = -0.0203 
## elapsed = 0.53   Round = 25  logCost = 7.2445    Value = -0.0203 
## elapsed = 0.10   Round = 26  logCost = 4.3700    Value = -0.0203 
## elapsed = 5.47   Round = 27  logCost = 12.4167   Value = -0.0186 
## elapsed = 0.07   Round = 28  logCost = -0.2072   Value = -0.0186 
## elapsed = 7.40   Round = 29  logCost = 15.9732   Value = -0.0186 
## elapsed = 7.90   Round = 30  logCost = 17.0627   Value = -0.1034 
## elapsed = 2.31   Round = 31  logCost = 10.4807   Value = -0.0203 
## elapsed = 0.07   Round = 32  logCost = 1.3078    Value = -0.0203 
## elapsed = 0.05   Round = 33  logCost = -0.5958   Value = -0.0186 
## elapsed = 6.10   Round = 34  logCost = 12.6207   Value = -0.0186 
## elapsed = 0.51   Round = 35  logCost = 8.3371    Value = -0.0203 
## elapsed = 4.96   Round = 36  logCost = 12.2033   Value = -0.0186 
## elapsed = 5.27   Round = 37  logCost = 12.5207   Value = -0.0186 
## elapsed = 0.05   Round = 38  logCost = -1.1632   Value = -0.0169 
## elapsed = 0.42   Round = 39  logCost = 7.6583    Value = -0.0203 
## elapsed = 0.08   Round = 40  logCost = 3.8680    Value = -0.0203 
## elapsed = 1.67   Round = 41  logCost = 9.5338    Value = -0.0220 
## elapsed = 7.47   Round = 42  logCost = 17.6858   Value = -0.1034 
## elapsed = 7.78   Round = 43  logCost = 16.1313   Value = -0.0186 
## elapsed = 0.07   Round = 44  logCost = 0.8071    Value = -0.0203 
## elapsed = 3.43   Round = 45  logCost = 11.4682   Value = -0.0186 
## elapsed = 7.72   Round = 46  logCost = 14.4283   Value = -0.0186 
## elapsed = 0.05   Round = 47  logCost = 1.0083    Value = -0.0203 
## elapsed = 3.30   Round = 48  logCost = 10.7092   Value = -0.0203 
## elapsed = 1.27   Round = 49  logCost = 9.8284    Value = -0.0220 
## elapsed = 0.05   Round = 50  logCost = -1.8423   Value = -0.0186 
## elapsed = 2.17   Round = 51  logCost = 10.4467   Value = -0.0203 
## elapsed = 3.98   Round = 52  logCost = 11.3556   Value = -0.0186 
## elapsed = 6.27   Round = 53  logCost = 12.5493   Value = -0.0186 
## elapsed = 0.07   Round = 54  logCost = -2.0199   Value = -0.0186 
## elapsed = 3.90   Round = 55  logCost = 11.3426   Value = -0.0186 
## elapsed = 3.64   Round = 56  logCost = 11.5541   Value = -0.0203 
## elapsed = 8.13   Round = 57  logCost = 13.1535   Value = -0.0186 
## elapsed = 0.08   Round = 58  logCost = -2.8344   Value = -0.0169 
## elapsed = 0.09   Round = 59  logCost = -2.3143   Value = -0.0169 
## elapsed = 4.93   Round = 60  logCost = 11.1460   Value = -0.0203 
## elapsed = 4.78   Round = 61  logCost = 11.9674   Value = -0.0186 
## elapsed = 0.07   Round = 62  logCost = -1.8601   Value = -0.0186 
## elapsed = 2.83   Round = 63  logCost = 10.2196   Value = -0.0203 
## elapsed = 4.10   Round = 64  logCost = 10.8603   Value = -0.0203 
## elapsed = 4.88   Round = 65  logCost = 11.7292   Value = -0.0186 
## elapsed = 3.88   Round = 66  logCost = 11.3742   Value = -0.0186 
## elapsed = 0.08   Round = 67  logCost = -2.1433   Value = -0.0169 
## elapsed = 0.08   Round = 68  logCost = -3.6650   Value = -0.0220 
## elapsed = 0.34   Round = 69  logCost = -1.0259   Value = -0.0186 
## elapsed = 5.86   Round = 70  logCost = 11.1258   Value = -0.0203 
## 
##  Best Parameters Found: 
## Round = 5    logCost = -3.3272   Value = -0.0153
  OPT_Res$Best_Par
##   logCost 
## -3.327248
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 0.03589176
      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(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.01525424

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(234)

OPT_Res<- BayesianOptimization(svm_fit_bayes, bounds= list(logCost = c(-5, 20),
                                                           logGamma = c(-9, 5),
                                                           Degree = c(1L, 5L)),
                               init_grid_dt = NULL, init_points = 50, 
                               n_iter = 20, acq = "ucb", kappa =2.576,
                               eps=0, verbose = TRUE)
## elapsed = 48.24  Round = 1   logCost = 13.6405   logGamma = -0.1100  Degree = 4.0000 Value = -0.1068 
## elapsed = 0.14   Round = 2   logCost = 14.5428   logGamma = -3.6803  Degree = 4.0000 Value = -0.1203 
## elapsed = 0.23   Round = 3   logCost = -4.4991   logGamma = -6.8452  Degree = 2.0000 Value = -0.6678 
## elapsed = 6.50   Round = 4   logCost = 14.4021   logGamma = 2.3082   Degree = 3.0000 Value = -0.0203 
## elapsed = 0.25   Round = 5   logCost = -3.3272   logGamma = -7.8940  Degree = 2.0000 Value = -0.6678 
## elapsed = 0.22   Round = 6   logCost = 11.1199   logGamma = -6.9799  Degree = 5.0000 Value = -0.6678 
## elapsed = 0.13   Round = 7   logCost = 18.2346   logGamma = -7.7917  Degree = 2.0000 Value = -0.0797 
## elapsed = 0.81   Round = 8   logCost = 12.9411   logGamma = -2.5374  Degree = 2.0000 Value = -0.0780 
## elapsed = 176.03 Round = 9   logCost = 18.1934   logGamma = 2.3218   Degree = 2.0000 Value = -0.1119 
## elapsed = 0.15   Round = 10  logCost = 2.1058    logGamma = 0.5545   Degree = 3.0000 Value = -0.0305 
## elapsed = 0.22   Round = 11  logCost = 8.8931    logGamma = -3.8455  Degree = 4.0000 Value = -0.4153 
## elapsed = 0.17   Round = 12  logCost = 8.6925    logGamma = -2.1492  Degree = 2.0000 Value = -0.0780 
## elapsed = 0.23   Round = 13  logCost = 9.5712    logGamma = -5.4319  Degree = 3.0000 Value = -0.4814 
## elapsed = 4.80   Round = 14  logCost = 9.5747    logGamma = 3.1058   Degree = 3.0000 Value = -0.0203 
## elapsed = 0.21   Round = 15  logCost = -4.9700   logGamma = -2.5619  Degree = 2.0000 Value = -0.6678 
## elapsed = 0.10   Round = 16  logCost = 6.0279    logGamma = -3.4814  Degree = 1.0000 Value = -0.0288 
## elapsed = 0.19   Round = 17  logCost = 2.8288    logGamma = 1.6296   Degree = 2.0000 Value = -0.0797 
## elapsed = 1.79   Round = 18  logCost = 13.5004   logGamma = -1.9421  Degree = 2.0000 Value = -0.0797 
## elapsed = 0.12   Round = 19  logCost = -1.5418   logGamma = 0.3706   Degree = 4.0000 Value = -0.1220 
## elapsed = 1.14   Round = 20  logCost = 16.7944   logGamma = -0.5696  Degree = 3.0000 Value = -0.0186 
## elapsed = 113.38 Round = 21  logCost = 8.0767    logGamma = 4.0595   Degree = 4.0000 Value = -0.1678 
## elapsed = 0.18   Round = 22  logCost = 9.4776    logGamma = -4.1480  Degree = 3.0000 Value = -0.1610 
## elapsed = 0.28   Round = 23  logCost = 16.6300   logGamma = -0.8016  Degree = 3.0000 Value = -0.0169 
## elapsed = 0.14   Round = 24  logCost = 10.4356   logGamma = -4.6248  Degree = 3.0000 Value = -0.1864 
## elapsed = 0.20   Round = 25  logCost = 7.2445    logGamma = -8.0562  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.16   Round = 26  logCost = 4.3700    logGamma = -3.6790  Degree = 2.0000 Value = -0.2322 
## elapsed = 2.80   Round = 27  logCost = 12.4167   logGamma = -1.3037  Degree = 4.0000 Value = -0.0729 
## elapsed = 0.36   Round = 28  logCost = -0.2072   logGamma = -3.5495  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.15   Round = 29  logCost = 15.9732   logGamma = -6.9054  Degree = 2.0000 Value = -0.0881 
## elapsed = 0.15   Round = 30  logCost = 17.0627   logGamma = -7.2907  Degree = 2.0000 Value = -0.0831 
## elapsed = 0.09   Round = 31  logCost = 10.4807   logGamma = -0.7788  Degree = 3.0000 Value = -0.0186 
## elapsed = 0.17   Round = 32  logCost = 1.3078    logGamma = -1.4961  Degree = 2.0000 Value = -0.1712 
## elapsed = 0.43   Round = 33  logCost = -0.5958   logGamma = -4.3707  Degree = 4.0000 Value = -0.6678 
## elapsed = 18.16  Round = 34  logCost = 12.6207   logGamma = 2.8276   Degree = 5.0000 Value = -0.0678 
## elapsed = 18.80  Round = 35  logCost = 8.3371    logGamma = 4.0253   Degree = 3.0000 Value = -0.0203 
## elapsed = 1.09   Round = 36  logCost = 12.2033   logGamma = 0.0287   Degree = 5.0000 Value = -0.0305 
## elapsed = 0.65   Round = 37  logCost = 12.5207   logGamma = -4.9540  Degree = 4.0000 Value = -0.4542 
## elapsed = 1.25   Round = 38  logCost = -1.1632   logGamma = 4.3850   Degree = 2.0000 Value = -0.0780 
## elapsed = 0.46   Round = 39  logCost = 7.6583    logGamma = -4.3597  Degree = 4.0000 Value = -0.6288 
## elapsed = 3.64   Round = 40  logCost = 3.8680    logGamma = 2.5258   Degree = 2.0000 Value = -0.0780 
## elapsed = 88.98  Round = 41  logCost = 9.5338    logGamma = 2.9501   Degree = 4.0000 Value = -0.1254 
## elapsed = 17.24  Round = 42  logCost = 17.6858   logGamma = 2.9679   Degree = 5.0000 Value = -0.0695 
## elapsed = 0.13   Round = 43  logCost = 16.1313   logGamma = -6.8699  Degree = 3.0000 Value = -0.2492 
## elapsed = 0.20   Round = 44  logCost = 0.8071    logGamma = -6.9476  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.08   Round = 45  logCost = 11.4682   logGamma = -1.7771  Degree = 5.0000 Value = -0.0475 
## elapsed = 12.42  Round = 46  logCost = 14.4283   logGamma = 4.9103   Degree = 5.0000 Value = -0.0678 
## elapsed = 0.43   Round = 47  logCost = 1.0083    logGamma = -3.7983  Degree = 2.0000 Value = -0.6542 
## elapsed = 0.14   Round = 48  logCost = 10.7092   logGamma = -3.7880  Degree = 2.0000 Value = -0.0746 
## elapsed = 18.33  Round = 49  logCost = 9.8284    logGamma = 0.6458   Degree = 2.0000 Value = -0.0797 
## elapsed = 0.20   Round = 50  logCost = -1.8423   logGamma = -1.8271  Degree = 3.0000 Value = -0.5169 
## elapsed = 1.19   Round = 51  logCost = 10.0777   logGamma = 5.0000   Degree = 1.0000 Value = -0.0203 
## elapsed = 15.66  Round = 52  logCost = 20.0000   logGamma = -4.1798  Degree = 2.0000 Value = -0.0763 
## elapsed = 30.82  Round = 53  logCost = -5.0000   logGamma = 4.0627   Degree = 4.0000 Value = -0.0915 
## elapsed = 13.18  Round = 54  logCost = 20.0000   logGamma = 5.0000   Degree = 3.0000 Value = -0.0729 
## elapsed = 134.18 Round = 55  logCost = 13.5862   logGamma = 5.0000   Degree = 2.0000 Value = -0.1356 
## elapsed = 0.08   Round = 56  logCost = 3.8687    logGamma = 5.0000   Degree = 1.0000 Value = -0.0203 
## elapsed = 10.86  Round = 57  logCost = 20.0000   logGamma = -0.7478  Degree = 1.0000 Value = -0.0254 
## elapsed = 0.10   Round = 58  logCost = -5.0000   logGamma = 1.8896   Degree = 3.0000 Value = -0.0492 
## elapsed = 0.13   Round = 59  logCost = -5.0000   logGamma = 2.1669   Degree = 1.0000 Value = -0.2508 
## elapsed = 0.37   Round = 60  logCost = 20.0000   logGamma = -1.3970  Degree = 5.0000 Value = -0.0305 
## elapsed = 0.06   Round = 61  logCost = 14.2023   logGamma = -9.0000  Degree = 1.0000 Value = -0.0153 
## elapsed = 0.14   Round = 62  logCost = 5.4855    logGamma = 0.2718   Degree = 5.0000 Value = -0.0373 
## elapsed = 0.93   Round = 63  logCost = -0.0501   logGamma = 2.9051   Degree = 5.0000 Value = -0.0271 
## elapsed = 0.10   Round = 64  logCost = -5.0000   logGamma = 1.7715   Degree = 5.0000 Value = -0.0407 
## elapsed = 0.22   Round = 65  logCost = 20.0000   logGamma = -9.0000  Degree = 5.0000 Value = -0.6678 
## elapsed = 0.21   Round = 66  logCost = 20.0000   logGamma = -9.0000  Degree = 1.0000 Value = -0.0203 
## elapsed = 1.69   Round = 67  logCost = 1.4227    logGamma = 5.0000   Degree = 3.0000 Value = -0.0169 
## elapsed = 0.21   Round = 68  logCost = -5.0000   logGamma = -9.0000  Degree = 5.0000 Value = -0.6678 
## elapsed = 125.59 Round = 69  logCost = 20.0000   logGamma = 2.2255   Degree = 4.0000 Value = -0.1661 
## elapsed = 0.07   Round = 70  logCost = 15.9883   logGamma = -4.0561  Degree = 3.0000 Value = -0.0271 
## 
##  Best Parameters Found: 
## Round = 61   logCost = 14.2023   logGamma = -9.0000  Degree = 1.0000 Value = -0.0153
  OPT_Res$Best_Par
##  logCost logGamma   Degree 
## 14.20234 -9.00000  1.00000
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 1472299
  as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.0001234098
      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(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.01525424

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(234)

OPT_Res<- BayesianOptimization(svm_fit_bayes, bounds= list(logCost = c(-5, 20),
                                                           logGamma = c(-9, 5)),
                               init_grid_dt = NULL, init_points = 50, 
                               n_iter = 20, acq = "ucb", kappa =2.576,
                               eps=0, verbose = TRUE)
## elapsed = 0.33   Round = 1   logCost = 13.6405   logGamma = -0.1100  Value = -0.0237 
## elapsed = 0.19   Round = 2   logCost = 14.5428   logGamma = -3.6803  Value = -0.0186 
## elapsed = 0.39   Round = 3   logCost = -4.4991   logGamma = -6.8452  Value = -0.6678 
## elapsed = 0.23   Round = 4   logCost = 14.4021   logGamma = 2.3082   Value = -0.0390 
## elapsed = 0.30   Round = 5   logCost = -3.3272   logGamma = -7.8940  Value = -0.6678 
## elapsed = 0.07   Round = 6   logCost = 11.1199   logGamma = -6.9799  Value = -0.0203 
## elapsed = 0.12   Round = 7   logCost = 18.2346   logGamma = -7.7917  Value = -0.0220 
## elapsed = 0.15   Round = 8   logCost = 12.9411   logGamma = -2.5374  Value = -0.0203 
## elapsed = 0.27   Round = 9   logCost = 18.1934   logGamma = 2.3218   Value = -0.0390 
## elapsed = 0.12   Round = 10  logCost = 2.1058    logGamma = 0.5545   Value = -0.0339 
## elapsed = 0.10   Round = 11  logCost = 8.8931    logGamma = -3.8455  Value = -0.0220 
## elapsed = 0.08   Round = 12  logCost = 8.6925    logGamma = -2.1492  Value = -0.0220 
## elapsed = 0.15   Round = 13  logCost = 9.5712    logGamma = -5.4319  Value = -0.0203 
## elapsed = 0.26   Round = 14  logCost = 9.5747    logGamma = 3.1058   Value = -0.0441 
## elapsed = 0.26   Round = 15  logCost = -4.9700   logGamma = -2.5619  Value = -0.6678 
## elapsed = 0.11   Round = 16  logCost = 6.0279    logGamma = -3.4814  Value = -0.0322 
## elapsed = 0.14   Round = 17  logCost = 2.8288    logGamma = 1.6296   Value = -0.0339 
## elapsed = 0.16   Round = 18  logCost = 13.5004   logGamma = -1.9421  Value = -0.0203 
## elapsed = 0.18   Round = 19  logCost = -1.5418   logGamma = 0.3706   Value = -0.0763 
## elapsed = 1.27   Round = 20  logCost = 16.7944   logGamma = -0.5696  Value = -0.0271 
## elapsed = 0.41   Round = 21  logCost = 8.0767    logGamma = 4.0595   Value = -0.0678 
## elapsed = 0.17   Round = 22  logCost = 9.4776    logGamma = -4.1480  Value = -0.0186 
## elapsed = 1.36   Round = 23  logCost = 16.6300   logGamma = -0.8016  Value = -0.0271 
## elapsed = 0.18   Round = 24  logCost = 10.4356   logGamma = -4.6248  Value = -0.0186 
## elapsed = 0.21   Round = 25  logCost = 7.2445    logGamma = -8.0562  Value = -0.0576 
## elapsed = 0.20   Round = 26  logCost = 4.3700    logGamma = -3.6790  Value = -0.0424 
## elapsed = 0.11   Round = 27  logCost = 12.4167   logGamma = -1.3037  Value = -0.0203 
## elapsed = 0.34   Round = 28  logCost = -0.2072   logGamma = -3.5495  Value = -0.3000 
## elapsed = 0.56   Round = 29  logCost = 15.9732   logGamma = -6.9054  Value = -0.0203 
## elapsed = 0.36   Round = 30  logCost = 17.0627   logGamma = -7.2907  Value = -0.0153 
## elapsed = 0.86   Round = 31  logCost = 10.4807   logGamma = -0.7788  Value = -0.0237 
## elapsed = 0.13   Round = 32  logCost = 1.3078    logGamma = -1.4961  Value = -0.0576 
## elapsed = 0.31   Round = 33  logCost = -0.5958   logGamma = -4.3707  Value = -0.4627 
## elapsed = 0.23   Round = 34  logCost = 12.6207   logGamma = 2.8276   Value = -0.0390 
## elapsed = 0.32   Round = 35  logCost = 8.3371    logGamma = 4.0253   Value = -0.0678 
## elapsed = 0.17   Round = 36  logCost = 12.2033   logGamma = 0.0287   Value = -0.0271 
## elapsed = 0.09   Round = 37  logCost = 12.5207   logGamma = -4.9540  Value = -0.0203 
## elapsed = 0.40   Round = 38  logCost = -1.1632   logGamma = 4.3850   Value = -0.2254 
## elapsed = 0.11   Round = 39  logCost = 7.6583    logGamma = -4.3597  Value = -0.0288 
## elapsed = 0.20   Round = 40  logCost = 3.8680    logGamma = 2.5258   Value = -0.0373 
## elapsed = 0.26   Round = 41  logCost = 9.5338    logGamma = 2.9501   Value = -0.0407 
## elapsed = 0.26   Round = 42  logCost = 17.6858   logGamma = 2.9679   Value = -0.0390 
## elapsed = 0.32   Round = 43  logCost = 16.1313   logGamma = -6.8699  Value = -0.0186 
## elapsed = 0.35   Round = 44  logCost = 0.8071    logGamma = -6.9476  Value = -0.5593 
## elapsed = 0.13   Round = 45  logCost = 11.4682   logGamma = -1.7771  Value = -0.0186 
## elapsed = 0.43   Round = 46  logCost = 14.4283   logGamma = 4.9103   Value = -0.1136 
## elapsed = 0.18   Round = 47  logCost = 1.0083    logGamma = -3.7983  Value = -0.1186 
## elapsed = 0.15   Round = 48  logCost = 10.7092   logGamma = -3.7880  Value = -0.0203 
## elapsed = 0.11   Round = 49  logCost = 9.8284    logGamma = 0.6458   Value = -0.0305 
## elapsed = 0.26   Round = 50  logCost = -1.8423   logGamma = -1.8271  Value = -0.2932 
## elapsed = 2.08   Round = 51  logCost = 20.0000   logGamma = -3.8279  Value = -0.0237 
## elapsed = 0.40   Round = 52  logCost = 20.0000   logGamma = 5.0000   Value = -0.1271 
## elapsed = 0.16   Round = 53  logCost = 5.5999    logGamma = 0.6218   Value = -0.0271 
## elapsed = 0.44   Round = 54  logCost = -5.0000   logGamma = 5.0000   Value = -0.6678 
## elapsed = 0.49   Round = 55  logCost = 2.1599    logGamma = 5.0000   Value = -0.1271 
## elapsed = 0.36   Round = 56  logCost = 18.6350   logGamma = -5.2516  Value = -0.0203 
## elapsed = 0.16   Round = 57  logCost = 0.5052    logGamma = 2.0277   Value = -0.0356 
## elapsed = 6.62   Round = 58  logCost = 20.0000   logGamma = -0.7534  Value = -0.0288 
## elapsed = 0.49   Round = 59  logCost = 5.0881    logGamma = -9.0000  Value = -0.3169 
## elapsed = 0.16   Round = 60  logCost = 13.0671   logGamma = -9.0000  Value = -0.0220 
## elapsed = 0.24   Round = 61  logCost = 20.0000   logGamma = -6.6654  Value = -0.0220 
## elapsed = 0.30   Round = 62  logCost = 20.0000   logGamma = -9.0000  Value = -0.0220 
## elapsed = 0.70   Round = 63  logCost = 7.1008    logGamma = 1.7864   Value = -0.0390 
## elapsed = 1.03   Round = 64  logCost = 4.7301    logGamma = 5.0000   Value = -0.1271 
## elapsed = 3.95   Round = 65  logCost = 18.6263   logGamma = -2.0736  Value = -0.0254 
## elapsed = 0.10   Round = 66  logCost = 10.0748   logGamma = -9.0000  Value = -0.0407 
## elapsed = 0.43   Round = 67  logCost = 17.6983   logGamma = 5.0000   Value = -0.1271 
## elapsed = 0.08   Round = 68  logCost = 16.9965   logGamma = -9.0000  Value = -0.0186 
## elapsed = 0.13   Round = 69  logCost = 3.7113    logGamma = -1.7333  Value = -0.0339 
## elapsed = 0.12   Round = 70  logCost = 11.7444   logGamma = -9.0000  Value = -0.0288 
## 
##  Best Parameters Found: 
## Round = 30   logCost = 17.0627   logGamma = -7.2907  Value = -0.0153
  OPT_Res$Best_Par
##   logCost  logGamma 
## 17.062727 -7.290688
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 25718660
  as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.0006818588
      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(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.01525424

4 Conclusion