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)
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(38)
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(38)
folds <- createFolds(y=factor(train.set$Group), k = 5, list = FALSE)
train.set$fold <- folds
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.
#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(38)
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.17 Round = 1 logCost = 4.9976 Value = -0.0373
## elapsed = 0.06 Round = 2 logCost = -4.4933 Value = -0.0356
## elapsed = 0.06 Round = 3 logCost = -1.3606 Value = -0.0237
## elapsed = 0.13 Round = 4 logCost = 4.4379 Value = -0.0373
## elapsed = 7.75 Round = 5 logCost = 13.8450 Value = -0.0288
## elapsed = 8.54 Round = 6 logCost = 13.7940 Value = -0.0288
## elapsed = 1.12 Round = 7 logCost = 7.7509 Value = -0.0288
## elapsed = 0.25 Round = 8 logCost = 6.0395 Value = -0.0390
## elapsed = 0.05 Round = 9 logCost = -3.8181 Value = -0.0356
## elapsed = 9.75 Round = 10 logCost = 16.6838 Value = -0.0288
## elapsed = 0.05 Round = 11 logCost = -3.2759 Value = -0.0305
## elapsed = 1.62 Round = 12 logCost = 7.7009 Value = -0.0288
## elapsed = 7.45 Round = 13 logCost = 11.6638 Value = -0.0288
## elapsed = 0.13 Round = 14 logCost = 4.9203 Value = -0.0373
## elapsed = 1.17 Round = 15 logCost = 7.5790 Value = -0.0305
## elapsed = 0.06 Round = 16 logCost = 2.7752 Value = -0.0373
## elapsed = 8.95 Round = 17 logCost = 15.3030 Value = -0.0305
## elapsed = 0.04 Round = 18 logCost = -3.0498 Value = -0.0288
## elapsed = 0.09 Round = 19 logCost = 3.5257 Value = -0.0373
## elapsed = 8.29 Round = 20 logCost = 14.4384 Value = -0.0288
## elapsed = 1.18 Round = 21 logCost = 8.1075 Value = -0.0288
## elapsed = 0.05 Round = 22 logCost = 2.0402 Value = -0.0373
## elapsed = 0.04 Round = 23 logCost = -1.9573 Value = -0.0288
## elapsed = 0.05 Round = 24 logCost = -4.6129 Value = -0.0339
## elapsed = 0.89 Round = 25 logCost = 7.3699 Value = -0.0322
## elapsed = 6.55 Round = 26 logCost = 11.2806 Value = -0.0288
## elapsed = 9.92 Round = 27 logCost = 17.1035 Value = -0.0305
## elapsed = 0.05 Round = 28 logCost = 2.5779 Value = -0.0373
## elapsed = 0.80 Round = 29 logCost = 7.2883 Value = -0.0322
## elapsed = 0.05 Round = 30 logCost = 1.0500 Value = -0.0322
## elapsed = 0.97 Round = 31 logCost = 7.9194 Value = -0.0288
## elapsed = 0.05 Round = 32 logCost = -2.5426 Value = -0.0288
## elapsed = 8.43 Round = 33 logCost = 13.9416 Value = -0.0288
## elapsed = 10.82 Round = 34 logCost = 18.4818 Value = -0.0288
## elapsed = 0.61 Round = 35 logCost = 6.7906 Value = -0.0390
## elapsed = 3.38 Round = 36 logCost = 9.1364 Value = -0.0271
## elapsed = 9.43 Round = 37 logCost = 15.9119 Value = -0.0288
## elapsed = 8.44 Round = 38 logCost = 13.7951 Value = -0.0288
## elapsed = 6.83 Round = 39 logCost = 12.1007 Value = -0.0288
## elapsed = 0.05 Round = 40 logCost = -4.1721 Value = -0.0339
## elapsed = 0.58 Round = 41 logCost = 6.7891 Value = -0.0390
## elapsed = 3.41 Round = 42 logCost = 9.4448 Value = -0.0271
## elapsed = 0.04 Round = 43 logCost = -2.5372 Value = -0.0288
## elapsed = 0.05 Round = 44 logCost = -2.9539 Value = -0.0288
## elapsed = 0.87 Round = 45 logCost = 7.4134 Value = -0.0305
## elapsed = 8.30 Round = 46 logCost = 14.4325 Value = -0.0288
## elapsed = 0.04 Round = 47 logCost = -2.1343 Value = -0.0288
## elapsed = 0.96 Round = 48 logCost = 7.8754 Value = -0.0288
## elapsed = 9.10 Round = 49 logCost = 15.3679 Value = -0.0305
## elapsed = 9.44 Round = 50 logCost = 16.0208 Value = -0.0288
## elapsed = 11.60 Round = 51 logCost = 19.9777 Value = -0.0288
## elapsed = 8.49 Round = 52 logCost = 14.6973 Value = -0.0288
## elapsed = 7.10 Round = 53 logCost = 11.6443 Value = -0.0288
## elapsed = 7.87 Round = 54 logCost = 12.5101 Value = -0.0288
## elapsed = 7.29 Round = 55 logCost = 11.9291 Value = -0.0288
## elapsed = 7.38 Round = 56 logCost = 13.0667 Value = -0.0288
## elapsed = 3.59 Round = 57 logCost = 9.9048 Value = -0.0254
## elapsed = 5.94 Round = 58 logCost = 10.9024 Value = -0.0305
## elapsed = 7.01 Round = 59 logCost = 11.6456 Value = -0.0288
## elapsed = 0.06 Round = 60 logCost = -1.0036 Value = -0.0305
## elapsed = 6.99 Round = 61 logCost = 11.4797 Value = -0.0305
## elapsed = 7.33 Round = 62 logCost = 11.7243 Value = -0.0288
## elapsed = 6.88 Round = 63 logCost = 11.2333 Value = -0.0288
## elapsed = 6.21 Round = 64 logCost = 11.0818 Value = -0.0288
## elapsed = 6.85 Round = 65 logCost = 11.5530 Value = -0.0288
## elapsed = 7.70 Round = 66 logCost = 11.9507 Value = -0.0288
## elapsed = 5.99 Round = 67 logCost = 11.0190 Value = -0.0288
## elapsed = 6.18 Round = 68 logCost = 11.0854 Value = -0.0288
## elapsed = 7.10 Round = 69 logCost = 12.0167 Value = -0.0288
## elapsed = 5.89 Round = 70 logCost = 11.8331 Value = -0.0288
##
## Best Parameters Found:
## Round = 3 logCost = -1.3606 Value = -0.0237
OPT_Res$Best_Par
## logCost
## -1.360628
as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 0.2564997
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.02881356
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(38)
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.11 Round = 1 logCost = 4.9976 logGamma = -5.8029 Degree = 2.0000 Value = -0.6559
## elapsed = 0.11 Round = 2 logCost = -4.4933 logGamma = -2.4588 Degree = 4.0000 Value = -0.6678
## elapsed = 0.11 Round = 3 logCost = -1.3606 logGamma = -4.9197 Degree = 4.0000 Value = -0.6678
## elapsed = 0.08 Round = 4 logCost = 4.4379 logGamma = -1.7974 Degree = 4.0000 Value = -0.2186
## elapsed = 0.07 Round = 5 logCost = 13.8450 logGamma = -6.9840 Degree = 2.0000 Value = -0.1220
## elapsed = 0.08 Round = 6 logCost = 13.7940 logGamma = -8.1420 Degree = 2.0000 Value = -0.2169
## elapsed = 0.05 Round = 7 logCost = 7.7509 logGamma = -1.8201 Degree = 3.0000 Value = -0.0492
## elapsed = 0.11 Round = 8 logCost = 6.0395 logGamma = -3.9130 Degree = 4.0000 Value = -0.6051
## elapsed = 0.11 Round = 9 logCost = -3.8181 logGamma = -4.1670 Degree = 5.0000 Value = -0.6678
## elapsed = 0.13 Round = 10 logCost = 16.6838 logGamma = -6.6171 Degree = 4.0000 Value = -0.6254
## elapsed = 0.11 Round = 11 logCost = -3.2759 logGamma = -2.3208 Degree = 4.0000 Value = -0.6678
## elapsed = 0.06 Round = 12 logCost = 7.7009 logGamma = -0.9896 Degree = 3.0000 Value = -0.0390
## elapsed = 0.06 Round = 13 logCost = 11.6638 logGamma = -2.9073 Degree = 3.0000 Value = -0.0390
## elapsed = 0.07 Round = 14 logCost = 4.9203 logGamma = -2.4940 Degree = 3.0000 Value = -0.1559
## elapsed = 0.11 Round = 15 logCost = 7.5790 logGamma = -5.3271 Degree = 5.0000 Value = -0.6678
## elapsed = 0.10 Round = 16 logCost = 2.7752 logGamma = -6.5438 Degree = 2.0000 Value = -0.6678
## elapsed = 0.11 Round = 17 logCost = 15.3030 logGamma = -6.4579 Degree = 4.0000 Value = -0.6627
## elapsed = 0.10 Round = 18 logCost = -3.0498 logGamma = -4.7046 Degree = 2.0000 Value = -0.6678
## elapsed = 0.10 Round = 19 logCost = 3.5257 logGamma = -4.6557 Degree = 3.0000 Value = -0.6678
## elapsed = 0.06 Round = 20 logCost = 14.4384 logGamma = -2.8219 Degree = 3.0000 Value = -0.0424
## elapsed = 0.05 Round = 21 logCost = 8.1075 logGamma = -0.8283 Degree = 5.0000 Value = -0.0508
## elapsed = 0.11 Round = 22 logCost = 2.0402 logGamma = -6.4437 Degree = 4.0000 Value = -0.6678
## elapsed = 0.11 Round = 23 logCost = -1.9573 logGamma = -8.8188 Degree = 3.0000 Value = -0.6678
## elapsed = 0.10 Round = 24 logCost = -4.6129 logGamma = -8.7169 Degree = 1.0000 Value = -0.6678
## elapsed = 0.05 Round = 25 logCost = 7.3699 logGamma = -1.0580 Degree = 3.0000 Value = -0.0390
## elapsed = 0.06 Round = 26 logCost = 11.2806 logGamma = -1.4243 Degree = 5.0000 Value = -0.0559
## elapsed = 0.14 Round = 27 logCost = 17.1035 logGamma = -2.0076 Degree = 3.0000 Value = -0.0271
## elapsed = 0.11 Round = 28 logCost = 2.5779 logGamma = -5.9509 Degree = 4.0000 Value = -0.6678
## elapsed = 0.11 Round = 29 logCost = 7.2883 logGamma = -7.6365 Degree = 2.0000 Value = -0.6678
## elapsed = 0.10 Round = 30 logCost = 1.0500 logGamma = -6.6123 Degree = 4.0000 Value = -0.6678
## elapsed = 0.09 Round = 31 logCost = 7.9194 logGamma = -1.6144 Degree = 2.0000 Value = -0.0881
## elapsed = 0.10 Round = 32 logCost = -2.5426 logGamma = -3.5168 Degree = 3.0000 Value = -0.6678
## elapsed = 0.09 Round = 33 logCost = 13.9416 logGamma = -3.4413 Degree = 1.0000 Value = -0.0356
## elapsed = 0.11 Round = 34 logCost = 18.4818 logGamma = -6.4738 Degree = 5.0000 Value = -0.6678
## elapsed = 0.11 Round = 35 logCost = 6.7906 logGamma = -8.6939 Degree = 5.0000 Value = -0.6678
## elapsed = 0.07 Round = 36 logCost = 9.1364 logGamma = -4.5129 Degree = 2.0000 Value = -0.1169
## elapsed = 0.07 Round = 37 logCost = 15.9119 logGamma = -2.4021 Degree = 3.0000 Value = -0.0339
## elapsed = 14.97 Round = 38 logCost = 13.7951 logGamma = -0.8881 Degree = 4.0000 Value = -0.1017
## elapsed = 0.10 Round = 39 logCost = 12.1007 logGamma = -3.6571 Degree = 5.0000 Value = -0.3051
## elapsed = 0.12 Round = 40 logCost = -4.1721 logGamma = -2.0741 Degree = 2.0000 Value = -0.6678
## elapsed = 0.09 Round = 41 logCost = 6.7891 logGamma = -3.6745 Degree = 3.0000 Value = -0.2407
## elapsed = 0.07 Round = 42 logCost = 9.4448 logGamma = -2.8692 Degree = 2.0000 Value = -0.0915
## elapsed = 0.11 Round = 43 logCost = -2.5372 logGamma = -7.6402 Degree = 2.0000 Value = -0.6678
## elapsed = 0.12 Round = 44 logCost = -2.9539 logGamma = -2.5407 Degree = 3.0000 Value = -0.6678
## elapsed = 0.12 Round = 45 logCost = 7.4134 logGamma = -8.6822 Degree = 4.0000 Value = -0.6678
## elapsed = 0.07 Round = 46 logCost = 14.4325 logGamma = -4.8723 Degree = 1.0000 Value = -0.0339
## elapsed = 0.12 Round = 47 logCost = -2.1343 logGamma = -7.3993 Degree = 3.0000 Value = -0.6678
## elapsed = 0.11 Round = 48 logCost = 7.8754 logGamma = -8.2963 Degree = 2.0000 Value = -0.6678
## elapsed = 0.12 Round = 49 logCost = 15.3679 logGamma = -8.1864 Degree = 3.0000 Value = -0.6678
## elapsed = 5.16 Round = 50 logCost = 16.0208 logGamma = -3.1077 Degree = 2.0000 Value = -0.0915
## elapsed = 18.05 Round = 51 logCost = 14.1079 logGamma = -0.7500 Degree = 2.0000 Value = -0.0915
## elapsed = 0.05 Round = 52 logCost = 12.0238 logGamma = -6.2209 Degree = 1.0000 Value = -0.0254
## elapsed = 0.07 Round = 53 logCost = 3.3324 logGamma = -0.7500 Degree = 2.0000 Value = -0.1017
## elapsed = 4.70 Round = 54 logCost = 10.3545 logGamma = -0.7500 Degree = 4.0000 Value = -0.0983
## elapsed = 35.61 Round = 55 logCost = 20.0000 logGamma = -0.7500 Degree = 4.0000 Value = -0.1627
## elapsed = 8.45 Round = 56 logCost = 18.0813 logGamma = -0.7500 Degree = 1.0000 Value = -0.0390
## elapsed = 70.83 Round = 57 logCost = 20.0000 logGamma = -0.7500 Degree = 2.0000 Value = -0.1949
## elapsed = 0.07 Round = 58 logCost = 20.0000 logGamma = -3.5313 Degree = 3.0000 Value = -0.0288
## elapsed = 0.05 Round = 59 logCost = 16.4806 logGamma = -9.0000 Degree = 1.0000 Value = -0.0305
## elapsed = 0.06 Round = 60 logCost = 16.9870 logGamma = -7.3316 Degree = 1.0000 Value = -0.0339
## elapsed = 0.54 Round = 61 logCost = 14.1727 logGamma = -0.7500 Degree = 1.0000 Value = -0.0373
## elapsed = 0.10 Round = 62 logCost = 20.0000 logGamma = -9.0000 Degree = 1.0000 Value = -0.0373
## elapsed = 4.87 Round = 63 logCost = 20.0000 logGamma = -3.9945 Degree = 1.0000 Value = -0.0322
## elapsed = 0.30 Round = 64 logCost = 20.0000 logGamma = -6.6415 Degree = 2.0000 Value = -0.0898
## elapsed = 0.06 Round = 65 logCost = 2.8077 logGamma = -0.7500 Degree = 5.0000 Value = -0.1153
## elapsed = 0.05 Round = 66 logCost = 4.7152 logGamma = -0.7500 Degree = 1.0000 Value = -0.0339
## elapsed = 0.05 Round = 67 logCost = 8.8335 logGamma = -0.7500 Degree = 1.0000 Value = -0.0339
## elapsed = 0.10 Round = 68 logCost = 19.7121 logGamma = -2.6884 Degree = 5.0000 Value = -0.0542
## elapsed = 7.74 Round = 69 logCost = 20.0000 logGamma = -2.3324 Degree = 1.0000 Value = -0.0356
## elapsed = 6.80 Round = 70 logCost = 17.7685 logGamma = -2.4550 Degree = 4.0000 Value = -0.0966
##
## Best Parameters Found:
## Round = 52 logCost = 12.0238 logGamma = -6.2209 Degree = 1.0000 Value = -0.0254
OPT_Res$Best_Par
## logCost logGamma Degree
## 12.023780 -6.220874 1.000000
as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 166671.5
as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.001987507
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.03728814
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(38)
OPT_Res<- BayesianOptimization(svm_fit_bayes, bounds= list(logCost = c(-5, 20),
logGamma = c(-9, -0.75)),
init_grid_dt = NULL, init_points = 70,
n_iter = 20, acq = "ucb", kappa =2.576,
eps=0, verbose = TRUE)
## elapsed = 0.06 Round = 1 logCost = 4.9976 logGamma = -0.8283 Value = -0.0373
## elapsed = 0.13 Round = 2 logCost = -4.4933 logGamma = -6.4437 Value = -0.6678
## elapsed = 0.15 Round = 3 logCost = -1.3606 logGamma = -8.8188 Value = -0.6678
## elapsed = 0.12 Round = 4 logCost = 4.4379 logGamma = -8.7169 Value = -0.3898
## elapsed = 0.33 Round = 5 logCost = 13.8450 logGamma = -1.0580 Value = -0.0322
## elapsed = 0.25 Round = 6 logCost = 13.7940 logGamma = -1.4243 Value = -0.0322
## elapsed = 0.05 Round = 7 logCost = 7.7509 logGamma = -2.0076 Value = -0.0339
## elapsed = 0.07 Round = 8 logCost = 6.0395 logGamma = -5.9509 Value = -0.0508
## elapsed = 0.13 Round = 9 logCost = -3.8181 logGamma = -7.6365 Value = -0.6678
## elapsed = 0.08 Round = 10 logCost = 16.6838 logGamma = -6.6123 Value = -0.0322
## elapsed = 0.13 Round = 11 logCost = -3.2759 logGamma = -1.6144 Value = -0.4661
## elapsed = 0.05 Round = 12 logCost = 7.7009 logGamma = -3.5168 Value = -0.0390
## elapsed = 0.06 Round = 13 logCost = 11.6638 logGamma = -3.4413 Value = -0.0288
## elapsed = 0.08 Round = 14 logCost = 4.9203 logGamma = -6.4738 Value = -0.0847
## elapsed = 0.08 Round = 15 logCost = 7.5790 logGamma = -8.6939 Value = -0.0814
## elapsed = 0.08 Round = 16 logCost = 2.7752 logGamma = -4.5129 Value = -0.0881
## elapsed = 0.39 Round = 17 logCost = 15.3030 logGamma = -2.4021 Value = -0.0254
## elapsed = 0.12 Round = 18 logCost = -3.0498 logGamma = -0.8881 Value = -0.3881
## elapsed = 0.07 Round = 19 logCost = 3.5257 logGamma = -3.6571 Value = -0.0610
## elapsed = 0.28 Round = 20 logCost = 14.4384 logGamma = -2.0741 Value = -0.0305
## elapsed = 0.06 Round = 21 logCost = 8.1075 logGamma = -3.6745 Value = -0.0322
## elapsed = 0.08 Round = 22 logCost = 2.0402 logGamma = -2.8692 Value = -0.0695
## elapsed = 0.13 Round = 23 logCost = -1.9573 logGamma = -7.6402 Value = -0.6678
## elapsed = 0.13 Round = 24 logCost = -4.6129 logGamma = -2.5407 Value = -0.6678
## elapsed = 0.08 Round = 25 logCost = 7.3699 logGamma = -8.6822 Value = -0.0847
## elapsed = 0.05 Round = 26 logCost = 11.2806 logGamma = -4.8723 Value = -0.0305
## elapsed = 0.06 Round = 27 logCost = 17.1035 logGamma = -7.3993 Value = -0.0322
## elapsed = 0.13 Round = 28 logCost = 2.5779 logGamma = -8.2963 Value = -0.5542
## elapsed = 0.07 Round = 29 logCost = 7.2883 logGamma = -8.1864 Value = -0.0661
## elapsed = 0.09 Round = 30 logCost = 1.0500 logGamma = -3.1077 Value = -0.0966
## elapsed = 0.07 Round = 31 logCost = 7.9194 logGamma = -7.8122 Value = -0.0508
## elapsed = 0.13 Round = 32 logCost = -2.5426 logGamma = -3.3805 Value = -0.5593
## elapsed = 0.20 Round = 33 logCost = 13.9416 logGamma = -2.4672 Value = -0.0288
## elapsed = 0.84 Round = 34 logCost = 18.4818 logGamma = -2.9069 Value = -0.0356
## elapsed = 0.06 Round = 35 logCost = 6.7906 logGamma = -6.1491 Value = -0.0508
## elapsed = 0.05 Round = 36 logCost = 9.1364 logGamma = -6.1807 Value = -0.0322
## elapsed = 0.12 Round = 37 logCost = 15.9119 logGamma = -5.1921 Value = -0.0271
## elapsed = 0.21 Round = 38 logCost = 13.7951 logGamma = -2.0902 Value = -0.0305
## elapsed = 0.12 Round = 39 logCost = 12.1007 logGamma = -1.4483 Value = -0.0305
## elapsed = 0.13 Round = 40 logCost = -4.1721 logGamma = -2.7064 Value = -0.6678
## elapsed = 0.05 Round = 41 logCost = 6.7891 logGamma = -3.7400 Value = -0.0339
## elapsed = 0.05 Round = 42 logCost = 9.4448 logGamma = -5.3702 Value = -0.0322
## elapsed = 0.13 Round = 43 logCost = -2.5372 logGamma = -5.7813 Value = -0.6678
## elapsed = 0.13 Round = 44 logCost = -2.9539 logGamma = -5.5085 Value = -0.6678
## elapsed = 0.05 Round = 45 logCost = 7.4134 logGamma = -1.0438 Value = -0.0356
## elapsed = 0.05 Round = 46 logCost = 14.4325 logGamma = -7.6846 Value = -0.0305
## elapsed = 0.13 Round = 47 logCost = -2.1343 logGamma = -3.7295 Value = -0.5576
## elapsed = 0.06 Round = 48 logCost = 7.8754 logGamma = -6.2933 Value = -0.0458
## elapsed = 0.09 Round = 49 logCost = 15.3679 logGamma = -5.0124 Value = -0.0237
## elapsed = 0.11 Round = 50 logCost = 16.0208 logGamma = -5.0004 Value = -0.0271
## elapsed = 0.05 Round = 51 logCost = 4.6881 logGamma = -0.9372 Value = -0.0390
## elapsed = 0.19 Round = 52 logCost = 14.8217 logGamma = -3.1529 Value = -0.0271
## elapsed = 0.05 Round = 53 logCost = 7.3646 logGamma = -3.9471 Value = -0.0356
## elapsed = 0.05 Round = 54 logCost = 16.8260 logGamma = -8.6347 Value = -0.0339
## elapsed = 0.11 Round = 55 logCost = 1.1090 logGamma = -4.9790 Value = -0.3186
## elapsed = 0.12 Round = 56 logCost = -2.3999 logGamma = -1.5651 Value = -0.3492
## elapsed = 0.13 Round = 57 logCost = 16.7573 logGamma = -5.4452 Value = -0.0305
## elapsed = 0.06 Round = 58 logCost = 10.4150 logGamma = -2.6218 Value = -0.0288
## elapsed = 0.05 Round = 59 logCost = 9.6455 logGamma = -5.9889 Value = -0.0356
## elapsed = 0.08 Round = 60 logCost = 2.2210 logGamma = -3.4497 Value = -0.0814
## elapsed = 0.05 Round = 61 logCost = 15.2401 logGamma = -7.4723 Value = -0.0288
## elapsed = 0.41 Round = 62 logCost = 19.2740 logGamma = -4.3672 Value = -0.0407
## elapsed = 0.05 Round = 63 logCost = 13.4626 logGamma = -7.9805 Value = -0.0288
## elapsed = 0.40 Round = 64 logCost = 14.7152 logGamma = -1.5422 Value = -0.0356
## elapsed = 0.06 Round = 65 logCost = 6.1301 logGamma = -1.6108 Value = -0.0339
## elapsed = 0.11 Round = 66 logCost = 2.4430 logGamma = -6.3864 Value = -0.3254
## elapsed = 0.09 Round = 67 logCost = 2.7034 logGamma = -5.2797 Value = -0.1203
## elapsed = 0.05 Round = 68 logCost = 8.0164 logGamma = -1.8365 Value = -0.0339
## elapsed = 0.05 Round = 69 logCost = 8.1646 logGamma = -1.7136 Value = -0.0322
## elapsed = 0.05 Round = 70 logCost = 13.7216 logGamma = -7.8870 Value = -0.0254
## elapsed = 0.06 Round = 71 logCost = 12.9190 logGamma = -6.5142 Value = -0.0288
## elapsed = 1.51 Round = 72 logCost = 18.5956 logGamma = -0.7500 Value = -0.0390
## elapsed = 0.06 Round = 73 logCost = 20.0000 logGamma = -9.0000 Value = -0.0288
## elapsed = 0.11 Round = 74 logCost = 20.0000 logGamma = -6.2767 Value = -0.0271
## elapsed = 1.21 Round = 75 logCost = 20.0000 logGamma = -1.4887 Value = -0.0322
## elapsed = 0.07 Round = 76 logCost = 10.2905 logGamma = -0.7500 Value = -0.0356
## elapsed = 0.06 Round = 77 logCost = 1.4013 logGamma = -0.7500 Value = -0.0559
## elapsed = 0.07 Round = 78 logCost = 20.0000 logGamma = -7.7935 Value = -0.0254
## elapsed = 1.78 Round = 79 logCost = 17.7941 logGamma = -1.6525 Value = -0.0356
## elapsed = 0.05 Round = 80 logCost = 14.6522 logGamma = -9.0000 Value = -0.0288
## elapsed = 3.34 Round = 81 logCost = 20.0000 logGamma = -0.7500 Value = -0.0407
## elapsed = 0.05 Round = 82 logCost = 13.1277 logGamma = -4.7904 Value = -0.0288
## elapsed = 0.06 Round = 83 logCost = 2.9465 logGamma = -0.7500 Value = -0.0356
## elapsed = 1.09 Round = 84 logCost = 16.7555 logGamma = -0.7500 Value = -0.0373
## elapsed = 1.75 Round = 85 logCost = 20.0000 logGamma = -3.0789 Value = -0.0305
## elapsed = 0.07 Round = 86 logCost = 11.0889 logGamma = -7.1515 Value = -0.0322
## elapsed = 0.06 Round = 87 logCost = 10.0852 logGamma = -3.9408 Value = -0.0339
## elapsed = 0.08 Round = 88 logCost = 9.7792 logGamma = -8.4922 Value = -0.0458
## elapsed = 0.06 Round = 89 logCost = 18.8025 logGamma = -9.0000 Value = -0.0288
## elapsed = 0.10 Round = 90 logCost = 18.9055 logGamma = -6.4522 Value = -0.0288
##
## Best Parameters Found:
## Round = 49 logCost = 15.3679 logGamma = -5.0124 Value = -0.0237
OPT_Res$Best_Par
## logCost logGamma
## 15.367864 -5.012404
as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 4722571
as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.006654885
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=258660,
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.02881356