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

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 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.11   Round = 1   logCost = 1.6377    Value = -0.0339 
## elapsed = 0.11   Round = 2   logCost = 4.3031    Value = -0.0356 
## elapsed = 6.00   Round = 3   logCost = 9.3213    Value = -0.0373 
## elapsed = 7.65   Round = 4   logCost = 17.7052   Value = -0.1102 
## elapsed = 0.04   Round = 5   logCost = 0.0420    Value = -0.0322 
## elapsed = 7.53   Round = 6   logCost = 17.4597   Value = -0.1102 
## elapsed = 7.84   Round = 7   logCost = 18.6169   Value = -0.1102 
## elapsed = 5.56   Round = 8   logCost = 11.5199   Value = -0.0407 
## elapsed = 5.08   Round = 9   logCost = 10.7279   Value = -0.0424 
## elapsed = 0.05   Round = 10  logCost = -3.4553   Value = -0.0424 
## elapsed = 0.04   Round = 11  logCost = 0.1494    Value = -0.0322 
## elapsed = 0.04   Round = 12  logCost = -0.5861   Value = -0.0339 
## elapsed = 5.80   Round = 13  logCost = 12.1756   Value = -0.0407 
## elapsed = 0.10   Round = 14  logCost = 4.6026    Value = -0.0356 
## elapsed = 5.92   Round = 15  logCost = 14.2460   Value = -0.0407 
## elapsed = 1.71   Round = 16  logCost = 7.4425    Value = -0.0356 
## elapsed = 5.59   Round = 17  logCost = 12.9405   Value = -0.0407 
## elapsed = 8.42   Round = 18  logCost = 19.7977   Value = -0.1102 
## elapsed = 0.10   Round = 19  logCost = 4.5009    Value = -0.0356 
## elapsed = 6.04   Round = 20  logCost = 14.4361   Value = -0.0407 
## elapsed = 7.86   Round = 21  logCost = 18.3676   Value = -0.1102 
## elapsed = 0.04   Round = 22  logCost = 0.3036    Value = -0.0322 
## elapsed = 6.73   Round = 23  logCost = 11.2918   Value = -0.0424 
## elapsed = 0.04   Round = 24  logCost = -1.8611   Value = -0.0322 
## elapsed = 0.09   Round = 25  logCost = 1.6805    Value = -0.0339 
## elapsed = 0.10   Round = 26  logCost = 4.6529    Value = -0.0356 
## elapsed = 0.04   Round = 27  logCost = -4.6652   Value = -0.0441 
## elapsed = 0.10   Round = 28  logCost = 4.5597    Value = -0.0356 
## elapsed = 7.15   Round = 29  logCost = 16.7423   Value = -0.1102 
## elapsed = 0.07   Round = 30  logCost = 3.5087    Value = -0.0356 
## elapsed = 0.94   Round = 31  logCost = 7.0520    Value = -0.0356 
## elapsed = 4.18   Round = 32  logCost = 9.9891    Value = -0.0373 
## elapsed = 1.21   Round = 33  logCost = 7.3385    Value = -0.0356 
## elapsed = 0.04   Round = 34  logCost = -0.3446   Value = -0.0339 
## elapsed = 6.97   Round = 35  logCost = 15.6843   Value = -0.1102 
## elapsed = 5.03   Round = 36  logCost = 11.7117   Value = -0.0424 
## elapsed = 6.46   Round = 37  logCost = 14.8560   Value = -0.0424 
## elapsed = 0.04   Round = 38  logCost = -2.3014   Value = -0.0356 
## elapsed = 5.58   Round = 39  logCost = 13.0928   Value = -0.0424 
## elapsed = 0.17   Round = 40  logCost = 5.2819    Value = -0.0356 
## elapsed = 6.88   Round = 41  logCost = 15.5237   Value = -0.1102 
## elapsed = 6.10   Round = 42  logCost = 11.1765   Value = -0.0407 
## elapsed = 6.08   Round = 43  logCost = 14.5733   Value = -0.0407 
## elapsed = 2.65   Round = 44  logCost = 8.8259    Value = -0.0373 
## elapsed = 2.08   Round = 45  logCost = 8.2430    Value = -0.0356 
## elapsed = 6.53   Round = 46  logCost = 14.7339   Value = -0.0424 
## elapsed = 0.04   Round = 47  logCost = -4.4167   Value = -0.0441 
## elapsed = 0.77   Round = 48  logCost = 6.9308    Value = -0.0339 
## elapsed = 5.96   Round = 49  logCost = 13.3078   Value = -0.0424 
## elapsed = 5.52   Round = 50  logCost = 12.3183   Value = -0.0390 
## elapsed = 1.09   Round = 51  logCost = 7.1151    Value = -0.0356 
## elapsed = 0.14   Round = 52  logCost = 5.1214    Value = -0.0356 
## elapsed = 0.08   Round = 53  logCost = 4.1014    Value = -0.0356 
## elapsed = 0.22   Round = 54  logCost = 5.4097    Value = -0.0339 
## elapsed = 0.25   Round = 55  logCost = 5.4392    Value = -0.0339 
## elapsed = 1.31   Round = 56  logCost = 7.3712    Value = -0.0356 
## elapsed = 0.87   Round = 57  logCost = 6.9876    Value = -0.0356 
## elapsed = 0.06   Round = 58  logCost = 3.2209    Value = -0.0356 
## elapsed = 0.31   Round = 59  logCost = 6.0254    Value = -0.0339 
## elapsed = 0.28   Round = 60  logCost = 5.8952    Value = -0.0339 
## elapsed = 0.34   Round = 61  logCost = 6.0923    Value = -0.0339 
## elapsed = 0.33   Round = 62  logCost = 5.5960    Value = -0.0339 
## elapsed = 3.00   Round = 63  logCost = 7.6126    Value = -0.0373 
## elapsed = 0.38   Round = 64  logCost = 6.2966    Value = -0.0339 
## elapsed = 0.29   Round = 65  logCost = 5.6181    Value = -0.0339 
## elapsed = 0.38   Round = 66  logCost = 6.2972    Value = -0.0339 
## elapsed = 0.25   Round = 67  logCost = 5.4521    Value = -0.0339 
## elapsed = 0.34   Round = 68  logCost = 6.1339    Value = -0.0339 
## elapsed = 0.15   Round = 69  logCost = 5.1197    Value = -0.0356 
## elapsed = 0.13   Round = 70  logCost = 4.9307    Value = -0.0356 
## 
##  Best Parameters Found: 
## Round = 5    logCost = 0.0420    Value = -0.0322
  OPT_Res$Best_Par
##    logCost 
## 0.04204828
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 1.042945
      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.04237288

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.10   Round = 1   logCost = 1.6377    logGamma = -5.0596  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.06   Round = 2   logCost = 4.3031    logGamma = -1.8950  Degree = 2.0000 Value = -0.1153 
## elapsed = 0.07   Round = 3   logCost = 9.3213    logGamma = -5.3857  Degree = 2.0000 Value = -0.1797 
## elapsed = 0.11   Round = 4   logCost = 17.7052   logGamma = -6.9804  Degree = 5.0000 Value = -0.6678 
## elapsed = 0.11   Round = 5   logCost = 0.0420    logGamma = -8.4169  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.06   Round = 6   logCost = 17.4597   logGamma = -8.1794  Degree = 2.0000 Value = -0.1136 
## elapsed = 0.23   Round = 7   logCost = 18.6169   logGamma = -6.3908  Degree = 2.0000 Value = -0.0915 
## elapsed = 0.07   Round = 8   logCost = 11.5199   logGamma = -4.7213  Degree = 3.0000 Value = -0.1492 
## elapsed = 0.09   Round = 9   logCost = 10.7279   logGamma = -3.5385  Degree = 5.0000 Value = -0.3508 
## elapsed = 0.10   Round = 10  logCost = -3.4553   logGamma = -5.6437  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.09   Round = 11  logCost = 0.1494    logGamma = -1.4688  Degree = 5.0000 Value = -0.3644 
## elapsed = 0.10   Round = 12  logCost = -0.5861   logGamma = -6.5778  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.07   Round = 13  logCost = 12.1756   logGamma = -5.2127  Degree = 2.0000 Value = -0.1068 
## elapsed = 0.10   Round = 14  logCost = 4.6026    logGamma = -6.2577  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.23   Round = 15  logCost = 14.2460   logGamma = -3.6303  Degree = 2.0000 Value = -0.0915 
## elapsed = 0.06   Round = 16  logCost = 7.4425    logGamma = -6.8714  Degree = 1.0000 Value = -0.0695 
## elapsed = 0.10   Round = 17  logCost = 12.9405   logGamma = -5.0520  Degree = 4.0000 Value = -0.4525 
## elapsed = 9.56   Round = 18  logCost = 19.7977   logGamma = -2.6779  Degree = 1.0000 Value = -0.1085 
## elapsed = 0.10   Round = 19  logCost = 4.5009    logGamma = -8.3050  Degree = 3.0000 Value = -0.6678 
## elapsed = 4.54   Round = 20  logCost = 14.4361   logGamma = -1.7786  Degree = 4.0000 Value = -0.0983 
## elapsed = 0.11   Round = 21  logCost = 18.3676   logGamma = -6.2026  Degree = 5.0000 Value = -0.6644 
## elapsed = 0.09   Round = 22  logCost = 0.3036    logGamma = -2.0746  Degree = 3.0000 Value = -0.4169 
## elapsed = 0.10   Round = 23  logCost = 11.2918   logGamma = -6.1399  Degree = 3.0000 Value = -0.5017 
## elapsed = 0.10   Round = 24  logCost = -1.8611   logGamma = -6.2464  Degree = 2.0000 Value = -0.6678 
## elapsed = 0.11   Round = 25  logCost = 1.6805    logGamma = -5.0701  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.06   Round = 26  logCost = 4.6529    logGamma = -1.6394  Degree = 3.0000 Value = -0.0831 
## elapsed = 0.10   Round = 27  logCost = -4.6652   logGamma = -1.8692  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.10   Round = 28  logCost = 4.5597    logGamma = -5.7826  Degree = 2.0000 Value = -0.6678 
## elapsed = 9.48   Round = 29  logCost = 16.7423   logGamma = -2.5871  Degree = 2.0000 Value = -0.0847 
## elapsed = 0.05   Round = 30  logCost = 3.5087    logGamma = -1.0749  Degree = 3.0000 Value = -0.0712 
## elapsed = 0.11   Round = 31  logCost = 7.0520    logGamma = -5.4141  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.05   Round = 32  logCost = 9.9891    logGamma = -3.1218  Degree = 1.0000 Value = -0.0339 
## elapsed = 0.06   Round = 33  logCost = 7.3385    logGamma = -5.7000  Degree = 1.0000 Value = -0.0644 
## elapsed = 0.11   Round = 34  logCost = -0.3446   logGamma = -6.3158  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.06   Round = 35  logCost = 15.6843   logGamma = -2.7540  Degree = 5.0000 Value = -0.0797 
## elapsed = 0.10   Round = 36  logCost = 11.7117   logGamma = -7.3278  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.05   Round = 37  logCost = 14.8560   logGamma = -3.1332  Degree = 3.0000 Value = -0.0492 
## elapsed = 0.11   Round = 38  logCost = -2.3014   logGamma = -7.9960  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.11   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.12   Round = 41  logCost = 15.5237   logGamma = -7.0231  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.10   Round = 42  logCost = 11.1765   logGamma = -8.5138  Degree = 3.0000 Value = -0.6678 
## elapsed = 0.36   Round = 43  logCost = 14.5733   logGamma = -3.7011  Degree = 2.0000 Value = -0.0881 
## elapsed = 0.10   Round = 44  logCost = 8.8259    logGamma = -1.7708  Degree = 2.0000 Value = -0.0932 
## elapsed = 0.08   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.0407 
## elapsed = 0.11   Round = 47  logCost = -4.4167   logGamma = -5.2440  Degree = 2.0000 Value = -0.6678 
## elapsed = 0.11   Round = 48  logCost = 6.9308    logGamma = -5.6168  Degree = 4.0000 Value = -0.6678 
## elapsed = 0.21   Round = 49  logCost = 13.3078   logGamma = -2.3103  Degree = 1.0000 Value = -0.0356 
## elapsed = 0.09   Round = 50  logCost = 12.3183   logGamma = -4.0093  Degree = 4.0000 Value = -0.2644 
## elapsed = 1.52   Round = 51  logCost = 18.6441   logGamma = -0.7500  Degree = 5.0000 Value = -0.0508 
## elapsed = 0.05   Round = 52  logCost = 11.2059   logGamma = -6.4319  Degree = 1.0000 Value = -0.0441 
## elapsed = 0.05   Round = 53  logCost = 9.6545    logGamma = -0.7500  Degree = 3.0000 Value = -0.0390 
## elapsed = 0.97   Round = 54  logCost = 17.5146   logGamma = -5.4648  Degree = 1.0000 Value = -0.0339 
## elapsed = 0.12   Round = 55  logCost = 20.0000   logGamma = -9.0000  Degree = 1.0000 Value = -0.0339 
## elapsed = 7.64   Round = 56  logCost = 20.0000   logGamma = -0.7500  Degree = 3.0000 Value = -0.0441 
## elapsed = 0.06   Round = 57  logCost = 5.6354    logGamma = -0.7500  Degree = 1.0000 Value = -0.0424 
## elapsed = 6.41   Round = 58  logCost = 16.6039   logGamma = -0.7500  Degree = 1.0000 Value = -0.0356 
## elapsed = 0.08   Round = 59  logCost = 0.8990    logGamma = -0.7500  Degree = 1.0000 Value = -0.0763 
## elapsed = 0.06   Round = 60  logCost = 15.8449   logGamma = -9.0000  Degree = 1.0000 Value = -0.0322 
## elapsed = 19.20  Round = 61  logCost = 20.0000   logGamma = -1.9018  Degree = 4.0000 Value = -0.1085 
## elapsed = 0.09   Round = 62  logCost = 11.5335   logGamma = -0.7500  Degree = 1.0000 Value = -0.0339 
## elapsed = 0.06   Round = 63  logCost = 10.3589   logGamma = -9.0000  Degree = 1.0000 Value = -0.0627 
## elapsed = 0.12   Round = 64  logCost = 14.3245   logGamma = -0.7500  Degree = 5.0000 Value = -0.0475 
## elapsed = 0.12   Round = 65  logCost = 5.9076    logGamma = -0.7500  Degree = 4.0000 Value = -0.1136 
## elapsed = 0.07   Round = 66  logCost = 5.7579    logGamma = -0.7500  Degree = 2.0000 Value = -0.0966 
## elapsed = 0.05   Round = 67  logCost = 11.0483   logGamma = -2.4433  Degree = 3.0000 Value = -0.0475 
## elapsed = 19.31  Round = 68  logCost = 15.0556   logGamma = -0.7500  Degree = 2.0000 Value = -0.0898 
## elapsed = 1.42   Round = 69  logCost = 20.0000   logGamma = -7.0211  Degree = 1.0000 Value = -0.0356 
## elapsed = 2.17   Round = 70  logCost = 17.3002   logGamma = -0.7500  Degree = 3.0000 Value = -0.0424 
## 
##  Best Parameters Found: 
## Round = 60   logCost = 15.8449   logGamma = -9.0000  Degree = 1.0000 Value = -0.0322
  OPT_Res$Best_Par
##  logCost logGamma   Degree 
## 15.84493 -9.00000  1.00000
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 7609657
  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=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.03898305

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.2441 
## elapsed = 0.05   Round = 2   logCost = 4.3031    logGamma = -1.8950  Value = -0.0492 
## elapsed = 0.05   Round = 3   logCost = 9.3213    logGamma = -5.3857  Value = -0.0441 
## elapsed = 0.08   Round = 4   logCost = 17.7052   logGamma = -6.9804  Value = -0.0508 
## elapsed = 0.12   Round = 5   logCost = 0.0420    logGamma = -8.4169  Value = -0.6678 
## elapsed = 0.06   Round = 6   logCost = 17.4597   logGamma = -8.1794  Value = -0.0407 
## elapsed = 0.10   Round = 7   logCost = 18.6169   logGamma = -6.3908  Value = -0.0407 
## elapsed = 0.05   Round = 8   logCost = 11.5199   logGamma = -4.7213  Value = -0.0305 
## elapsed = 0.06   Round = 9   logCost = 10.7279   logGamma = -3.5385  Value = -0.0339 
## elapsed = 0.12   Round = 10  logCost = -3.4553   logGamma = -5.6437  Value = -0.6678 
## elapsed = 0.08   Round = 11  logCost = 0.1494    logGamma = -1.4688  Value = -0.0898 
## elapsed = 0.13   Round = 12  logCost = -0.5861   logGamma = -6.5778  Value = -0.6678 
## elapsed = 0.05   Round = 13  logCost = 12.1756   logGamma = -5.2127  Value = -0.0305 
## elapsed = 0.08   Round = 14  logCost = 4.6026    logGamma = -6.2577  Value = -0.0949 
## elapsed = 0.12   Round = 15  logCost = 14.2460   logGamma = -3.6303  Value = -0.0339 
## elapsed = 0.06   Round = 16  logCost = 7.4425    logGamma = -6.8714  Value = -0.0644 
## elapsed = 0.06   Round = 17  logCost = 12.9405   logGamma = -5.0520  Value = -0.0322 
## elapsed = 1.31   Round = 18  logCost = 19.7977   logGamma = -2.6779  Value = -0.0441 
## elapsed = 0.12   Round = 19  logCost = 4.5009    logGamma = -8.3050  Value = -0.3153 
## elapsed = 0.23   Round = 20  logCost = 14.4361   logGamma = -1.7786  Value = -0.0373 
## elapsed = 0.11   Round = 21  logCost = 18.3676   logGamma = -6.2026  Value = -0.0373 
## elapsed = 0.09   Round = 22  logCost = 0.3036    logGamma = -2.0746  Value = -0.1017 
## elapsed = 0.06   Round = 23  logCost = 11.2918   logGamma = -6.1399  Value = -0.0339 
## elapsed = 0.13   Round = 24  logCost = -1.8611   logGamma = -6.2464  Value = -0.6678 
## elapsed = 0.11   Round = 25  logCost = 1.6805    logGamma = -5.0701  Value = -0.2373 
## elapsed = 0.05   Round = 26  logCost = 4.6529    logGamma = -1.6394  Value = -0.0407 
## elapsed = 0.13   Round = 27  logCost = -4.6652   logGamma = -1.8692  Value = -0.6678 
## elapsed = 0.08   Round = 28  logCost = 4.5597    logGamma = -5.7826  Value = -0.0814 
## elapsed = 0.69   Round = 29  logCost = 16.7423   logGamma = -2.5871  Value = -0.0424 
## elapsed = 0.05   Round = 30  logCost = 3.5087    logGamma = -1.0749  Value = -0.0492 
## elapsed = 0.06   Round = 31  logCost = 7.0520    logGamma = -5.4141  Value = -0.0576 
## elapsed = 0.06   Round = 32  logCost = 9.9891    logGamma = -3.1218  Value = -0.0339 
## elapsed = 0.06   Round = 33  logCost = 7.3385    logGamma = -5.7000  Value = -0.0576 
## elapsed = 0.13   Round = 34  logCost = -0.3446   logGamma = -6.3158  Value = -0.6661 
## elapsed = 0.51   Round = 35  logCost = 15.6843   logGamma = -2.7540  Value = -0.0356 
## elapsed = 0.05   Round = 36  logCost = 11.7117   logGamma = -7.3278  Value = -0.0441 
## elapsed = 0.19   Round = 37  logCost = 14.8560   logGamma = -3.1332  Value = -0.0322 
## elapsed = 0.13   Round = 38  logCost = -2.3014   logGamma = -7.9960  Value = -0.6678 
## elapsed = 0.06   Round = 39  logCost = 13.0928   logGamma = -6.9747  Value = -0.0322 
## elapsed = 0.10   Round = 40  logCost = 5.2819    logGamma = -7.8177  Value = -0.1203 
## elapsed = 0.08   Round = 41  logCost = 15.5237   logGamma = -7.0231  Value = -0.0339 
## elapsed = 0.05   Round = 42  logCost = 11.1765   logGamma = -8.5138  Value = -0.0525 
## elapsed = 0.17   Round = 43  logCost = 14.5733   logGamma = -3.7011  Value = -0.0339 
## elapsed = 0.06   Round = 44  logCost = 8.8259    logGamma = -1.7708  Value = -0.0339 
## elapsed = 0.05   Round = 45  logCost = 8.2430    logGamma = -2.5740  Value = -0.0339 
## elapsed = 0.20   Round = 46  logCost = 14.7339   logGamma = -2.4222  Value = -0.0356 
## elapsed = 0.13   Round = 47  logCost = -4.4167   logGamma = -5.2440  Value = -0.6678 
## elapsed = 0.06   Round = 48  logCost = 6.9308    logGamma = -5.6168  Value = -0.0644 
## elapsed = 0.14   Round = 49  logCost = 13.3078   logGamma = -2.3103  Value = -0.0356 
## elapsed = 0.06   Round = 50  logCost = 12.3183   logGamma = -4.0093  Value = -0.0339 
## elapsed = 0.06   Round = 51  logCost = 20.0000   logGamma = -9.0000  Value = -0.0322 
## elapsed = 0.08   Round = 52  logCost = 11.0690   logGamma = -0.7500  Value = -0.0390 
## elapsed = 0.05   Round = 53  logCost = 14.7181   logGamma = -9.0000  Value = -0.0305 
## elapsed = 4.16   Round = 54  logCost = 20.0000   logGamma = -0.7500  Value = -0.0441 
## elapsed = 0.08   Round = 55  logCost = 7.6318    logGamma = -9.0000  Value = -0.0898 
## elapsed = 0.05   Round = 56  logCost = 6.5413    logGamma = -0.7500  Value = -0.0390 
## elapsed = 0.07   Round = 57  logCost = 1.5707    logGamma = -1.3506  Value = -0.0661 
## elapsed = 0.64   Round = 58  logCost = 20.0000   logGamma = -4.8557  Value = -0.0424 
## elapsed = 0.46   Round = 59  logCost = 18.3224   logGamma = -4.0213  Value = -0.0254 
## elapsed = 3.04   Round = 60  logCost = 18.1716   logGamma = -0.7500  Value = -0.0458 
## elapsed = 0.05   Round = 61  logCost = 18.7621   logGamma = -9.0000  Value = -0.0339 
## elapsed = 0.08   Round = 62  logCost = 2.6487    logGamma = -3.4440  Value = -0.0763 
## elapsed = 0.07   Round = 63  logCost = 9.0035    logGamma = -0.7500  Value = -0.0356 
## elapsed = 0.05   Round = 64  logCost = 12.7402   logGamma = -9.0000  Value = -0.0407 
## elapsed = 0.24   Round = 65  logCost = 12.9763   logGamma = -0.7500  Value = -0.0390 
## elapsed = 0.09   Round = 66  logCost = 20.0000   logGamma = -7.4236  Value = -0.0356 
## elapsed = 0.05   Round = 67  logCost = 16.5581   logGamma = -9.0000  Value = -0.0322 
## elapsed = 0.05   Round = 68  logCost = 6.3093    logGamma = -2.8865  Value = -0.0424 
## elapsed = 0.44   Round = 69  logCost = 17.1114   logGamma = -4.4374  Value = -0.0390 
## elapsed = 1.05   Round = 70  logCost = 16.0027   logGamma = -0.7500  Value = -0.0441 
## 
##  Best Parameters Found: 
## Round = 59   logCost = 18.3224   logGamma = -4.0213  Value = -0.0254
  OPT_Res$Best_Par
##   logCost  logGamma 
## 18.322431 -4.021343
  as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 90642296
  as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.01792888
      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.03050847