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(42)
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(42)
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(42)
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 = 9.94 Round = 1 logCost = 17.8702 Value = -0.0288
## elapsed = 9.97 Round = 2 logCost = 18.4269 Value = -0.0288
## elapsed = 0.06 Round = 3 logCost = 2.1535 Value = -0.0271
## elapsed = 9.22 Round = 4 logCost = 15.7612 Value = -0.0271
## elapsed = 5.95 Round = 5 logCost = 11.0436 Value = -0.0322
## elapsed = 2.49 Round = 6 logCost = 7.9774 Value = -0.0254
## elapsed = 7.34 Round = 7 logCost = 13.4147 Value = -0.0271
## elapsed = 0.04 Round = 8 logCost = -1.6333 Value = -0.0237
## elapsed = 6.81 Round = 9 logCost = 11.4248 Value = -0.0305
## elapsed = 7.44 Round = 10 logCost = 12.6266 Value = -0.0271
## elapsed = 0.59 Round = 11 logCost = 6.4435 Value = -0.0271
## elapsed = 7.08 Round = 12 logCost = 12.9778 Value = -0.0271
## elapsed = 10.25 Round = 13 logCost = 18.3668 Value = -0.0288
## elapsed = 0.05 Round = 14 logCost = 1.3857 Value = -0.0288
## elapsed = 0.60 Round = 15 logCost = 6.5573 Value = -0.0271
## elapsed = 10.07 Round = 16 logCost = 18.5004 Value = -0.0288
## elapsed = 10.12 Round = 17 logCost = 19.4557 Value = -0.0271
## elapsed = 0.04 Round = 18 logCost = -2.0628 Value = -0.0220
## elapsed = 0.96 Round = 19 logCost = 6.8749 Value = -0.0271
## elapsed = 3.57 Round = 20 logCost = 9.0083 Value = -0.0271
## elapsed = 9.71 Round = 21 logCost = 17.6008 Value = -0.0288
## elapsed = 0.04 Round = 22 logCost = -1.5322 Value = -0.0237
## elapsed = 10.54 Round = 23 logCost = 19.7223 Value = -0.0288
## elapsed = 9.84 Round = 24 logCost = 18.6667 Value = -0.0288
## elapsed = 0.05 Round = 25 logCost = -2.9391 Value = -0.0288
## elapsed = 2.03 Round = 26 logCost = 7.8553 Value = -0.0254
## elapsed = 0.20 Round = 27 logCost = 4.7551 Value = -0.0288
## elapsed = 10.05 Round = 28 logCost = 17.6435 Value = -0.0288
## elapsed = 0.48 Round = 29 logCost = 6.1742 Value = -0.0288
## elapsed = 9.06 Round = 30 logCost = 15.9001 Value = -0.0288
## elapsed = 7.36 Round = 31 logCost = 13.4399 Value = -0.0271
## elapsed = 8.90 Round = 32 logCost = 15.2764 Value = -0.0288
## elapsed = 0.21 Round = 33 logCost = 4.7027 Value = -0.0288
## elapsed = 6.92 Round = 34 logCost = 12.1292 Value = -0.0288
## elapsed = 0.04 Round = 35 logCost = -4.9013 Value = -0.0305
## elapsed = 8.99 Round = 36 logCost = 15.8229 Value = -0.0271
## elapsed = 0.05 Round = 37 logCost = -4.8166 Value = -0.0322
## elapsed = 0.05 Round = 38 logCost = 0.1915 Value = -0.0254
## elapsed = 9.81 Round = 39 logCost = 17.6650 Value = -0.0271
## elapsed = 5.53 Round = 40 logCost = 10.2945 Value = -0.0305
## elapsed = 0.21 Round = 41 logCost = 4.4890 Value = -0.0288
## elapsed = 0.43 Round = 42 logCost = 5.8943 Value = -0.0288
## elapsed = 0.05 Round = 43 logCost = -4.0642 Value = -0.0254
## elapsed = 10.50 Round = 44 logCost = 19.3385 Value = -0.0288
## elapsed = 0.36 Round = 45 logCost = 5.7938 Value = -0.0288
## elapsed = 10.77 Round = 46 logCost = 18.9394 Value = -0.0288
## elapsed = 10.03 Round = 47 logCost = 17.1939 Value = -0.0271
## elapsed = 5.79 Round = 48 logCost = 10.9995 Value = -0.0322
## elapsed = 10.57 Round = 49 logCost = 19.2742 Value = -0.0288
## elapsed = 5.12 Round = 50 logCost = 10.4710 Value = -0.0322
## elapsed = 0.06 Round = 51 logCost = 1.6988 Value = -0.0288
## elapsed = 0.04 Round = 52 logCost = -2.1662 Value = -0.0220
## elapsed = 0.18 Round = 53 logCost = 4.4159 Value = -0.0288
## elapsed = 0.04 Round = 54 logCost = -4.6707 Value = -0.0322
## elapsed = 0.10 Round = 55 logCost = 2.7847 Value = -0.0271
## elapsed = 0.05 Round = 56 logCost = -1.4191 Value = -0.0237
## elapsed = 0.05 Round = 57 logCost = -1.6986 Value = -0.0237
## elapsed = 0.04 Round = 58 logCost = -0.0897 Value = -0.0254
## elapsed = 0.04 Round = 59 logCost = -0.5715 Value = -0.0254
## elapsed = 8.93 Round = 60 logCost = 15.0736 Value = -0.0271
## elapsed = 0.07 Round = 61 logCost = 2.7860 Value = -0.0271
## elapsed = 9.71 Round = 62 logCost = 17.8279 Value = -0.0271
## elapsed = 0.05 Round = 63 logCost = -2.0003 Value = -0.0220
## elapsed = 6.68 Round = 64 logCost = 11.7706 Value = -0.0288
## elapsed = 0.05 Round = 65 logCost = -4.9216 Value = -0.0288
## elapsed = 0.04 Round = 66 logCost = -0.5725 Value = -0.0254
## elapsed = 0.05 Round = 67 logCost = -2.2271 Value = -0.0237
## elapsed = 9.17 Round = 68 logCost = 17.7434 Value = -0.0271
## elapsed = 0.04 Round = 69 logCost = -2.1167 Value = -0.0220
## elapsed = 0.04 Round = 70 logCost = -1.1410 Value = -0.0237
##
## Best Parameters Found:
## Round = 18 logCost = -2.0628 Value = -0.0220
OPT_Res$Best_Par
## logCost
## -2.062816
as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 0.1270956
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.02711864
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(42)
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 = 17.8702 logGamma = -6.2492 Degree = 4.0000 Value = -0.4475
## elapsed = 0.18 Round = 2 logCost = 18.4269 logGamma = -6.1393 Degree = 2.0000 Value = -0.0932
## elapsed = 0.10 Round = 3 logCost = 2.1535 logGamma = -5.7125 Degree = 2.0000 Value = -0.6678
## elapsed = 0.06 Round = 4 logCost = 15.7612 logGamma = -2.5263 Degree = 3.0000 Value = -0.0305
## elapsed = 0.12 Round = 5 logCost = 11.0436 logGamma = -8.6788 Degree = 5.0000 Value = -0.6678
## elapsed = 0.08 Round = 6 logCost = 7.9774 logGamma = -2.8224 Degree = 5.0000 Value = -0.3051
## elapsed = 0.07 Round = 7 logCost = 13.4147 logGamma = -3.4125 Degree = 4.0000 Value = -0.1356
## elapsed = 0.11 Round = 8 logCost = -1.6333 logGamma = -7.5871 Degree = 4.0000 Value = -0.6678
## elapsed = 0.11 Round = 9 logCost = 11.4248 logGamma = -6.8460 Degree = 3.0000 Value = -0.6678
## elapsed = 0.05 Round = 10 logCost = 12.6266 logGamma = -4.7561 Degree = 1.0000 Value = -0.0288
## elapsed = 0.08 Round = 11 logCost = 6.4435 logGamma = -3.4262 Degree = 3.0000 Value = -0.2085
## elapsed = 10.24 Round = 12 logCost = 12.9778 logGamma = -0.8918 Degree = 4.0000 Value = -0.0949
## elapsed = 4.98 Round = 13 logCost = 18.3668 logGamma = -2.7338 Degree = 4.0000 Value = -0.0797
## elapsed = 0.12 Round = 14 logCost = 1.3857 logGamma = -4.3265 Degree = 3.0000 Value = -0.6678
## elapsed = 0.06 Round = 15 logCost = 6.5573 logGamma = -1.9901 Degree = 3.0000 Value = -0.0508
## elapsed = 0.13 Round = 16 logCost = 18.5004 logGamma = -7.4368 Degree = 3.0000 Value = -0.2051
## elapsed = 0.81 Round = 17 logCost = 19.4557 logGamma = -6.7619 Degree = 1.0000 Value = -0.0305
## elapsed = 0.11 Round = 18 logCost = -2.0628 logGamma = -2.1677 Degree = 2.0000 Value = -0.6153
## elapsed = 0.08 Round = 19 logCost = 6.8749 logGamma = -3.2811 Degree = 3.0000 Value = -0.1593
## elapsed = 0.12 Round = 20 logCost = 9.0083 logGamma = -7.0155 Degree = 4.0000 Value = -0.6678
## elapsed = 0.06 Round = 21 logCost = 17.6008 logGamma = -8.6453 Degree = 2.0000 Value = -0.1169
## elapsed = 0.12 Round = 22 logCost = -1.5322 logGamma = -7.8410 Degree = 3.0000 Value = -0.6678
## elapsed = 0.07 Round = 23 logCost = 19.7223 logGamma = -7.2148 Degree = 3.0000 Value = -0.1153
## elapsed = 0.06 Round = 24 logCost = 18.6667 logGamma = -5.0450 Degree = 3.0000 Value = -0.0373
## elapsed = 0.13 Round = 25 logCost = -2.9391 logGamma = -7.3714 Degree = 4.0000 Value = -0.6678
## elapsed = 0.07 Round = 26 logCost = 7.8553 logGamma = -3.0653 Degree = 3.0000 Value = -0.0949
## elapsed = 0.12 Round = 27 logCost = 4.7551 logGamma = -8.9350 Degree = 5.0000 Value = -0.6678
## elapsed = 0.11 Round = 28 logCost = 17.6435 logGamma = -5.9022 Degree = 5.0000 Value = -0.6542
## elapsed = 0.12 Round = 29 logCost = 6.1742 logGamma = -4.7561 Degree = 2.0000 Value = -0.2525
## elapsed = 0.11 Round = 30 logCost = 15.9001 logGamma = -8.9870 Degree = 4.0000 Value = -0.6678
## elapsed = 0.09 Round = 31 logCost = 13.4399 logGamma = -4.2018 Degree = 5.0000 Value = -0.4085
## elapsed = 0.11 Round = 32 logCost = 15.2764 logGamma = -7.6973 Degree = 3.0000 Value = -0.5593
## elapsed = 0.12 Round = 33 logCost = 4.7027 logGamma = -6.0380 Degree = 4.0000 Value = -0.6678
## elapsed = 0.09 Round = 34 logCost = 12.1292 logGamma = -3.6735 Degree = 5.0000 Value = -0.3153
## elapsed = 0.11 Round = 35 logCost = -4.9013 logGamma = -2.5995 Degree = 4.0000 Value = -0.6678
## elapsed = 0.05 Round = 36 logCost = 15.8229 logGamma = -4.3499 Degree = 3.0000 Value = -0.0441
## elapsed = 0.12 Round = 37 logCost = -4.8166 logGamma = -7.0719 Degree = 4.0000 Value = -0.6678
## elapsed = 0.11 Round = 38 logCost = 0.1915 logGamma = -8.2577 Degree = 1.0000 Value = -0.6678
## elapsed = 0.12 Round = 39 logCost = 17.6650 logGamma = -8.2937 Degree = 4.0000 Value = -0.6678
## elapsed = 0.10 Round = 40 logCost = 10.2945 logGamma = -6.4819 Degree = 3.0000 Value = -0.6678
## elapsed = 0.08 Round = 41 logCost = 4.4890 logGamma = -3.4937 Degree = 2.0000 Value = -0.2085
## elapsed = 0.10 Round = 42 logCost = 5.8943 logGamma = -8.9980 Degree = 1.0000 Value = -0.2915
## elapsed = 0.11 Round = 43 logCost = -4.0642 logGamma = -7.2793 Degree = 3.0000 Value = -0.6678
## elapsed = 30.59 Round = 44 logCost = 19.3385 logGamma = -1.3025 Degree = 4.0000 Value = -0.1661
## elapsed = 0.07 Round = 45 logCost = 5.7938 logGamma = -1.3634 Degree = 4.0000 Value = -0.1186
## elapsed = 4.02 Round = 46 logCost = 18.9394 logGamma = -2.9437 Degree = 4.0000 Value = -0.0814
## elapsed = 0.07 Round = 47 logCost = 17.1939 logGamma = -6.2522 Degree = 2.0000 Value = -0.0864
## elapsed = 0.11 Round = 48 logCost = 10.9995 logGamma = -4.7507 Degree = 5.0000 Value = -0.6644
## elapsed = 22.27 Round = 49 logCost = 19.2742 logGamma = -2.8622 Degree = 2.0000 Value = -0.0898
## elapsed = 0.06 Round = 50 logCost = 10.4710 logGamma = -3.8919 Degree = 2.0000 Value = -0.0915
## elapsed = 0.45 Round = 51 logCost = 20.0000 logGamma = -8.4288 Degree = 1.0000 Value = -0.0305
## elapsed = 0.06 Round = 52 logCost = 12.2936 logGamma = -6.8629 Degree = 1.0000 Value = -0.0322
## elapsed = 0.05 Round = 53 logCost = 7.7753 logGamma = -3.9863 Degree = 1.0000 Value = -0.0322
## elapsed = 63.43 Round = 54 logCost = 18.7258 logGamma = -0.7500 Degree = 2.0000 Value = -0.1593
## elapsed = 0.08 Round = 55 logCost = 16.6480 logGamma = -7.6470 Degree = 1.0000 Value = -0.0305
## elapsed = 0.07 Round = 56 logCost = 20.0000 logGamma = -7.8906 Degree = 2.0000 Value = -0.0898
## elapsed = 0.10 Round = 57 logCost = 11.8187 logGamma = -0.7500 Degree = 5.0000 Value = -0.0373
## elapsed = 2.40 Round = 58 logCost = 16.4863 logGamma = -2.4596 Degree = 1.0000 Value = -0.0339
## elapsed = 0.06 Round = 59 logCost = 8.8246 logGamma = -0.8514 Degree = 1.0000 Value = -0.0288
## elapsed = 0.07 Round = 60 logCost = 4.7186 logGamma = -0.7500 Degree = 1.0000 Value = -0.0305
## elapsed = 0.06 Round = 61 logCost = 7.4310 logGamma = -1.8694 Degree = 2.0000 Value = -0.0881
## elapsed = 0.10 Round = 62 logCost = 16.5898 logGamma = -1.5565 Degree = 5.0000 Value = -0.0424
## elapsed = 9.11 Round = 63 logCost = 20.0000 logGamma = -3.7614 Degree = 1.0000 Value = -0.0305
## elapsed = 12.80 Round = 64 logCost = 20.0000 logGamma = -0.7500 Degree = 1.0000 Value = -0.0390
## elapsed = 0.05 Round = 65 logCost = 12.0678 logGamma = -9.0000 Degree = 1.0000 Value = -0.0288
## elapsed = 0.10 Round = 66 logCost = 6.5200 logGamma = -2.1638 Degree = 1.0000 Value = -0.0322
## elapsed = 1.63 Round = 67 logCost = 15.0111 logGamma = -0.7500 Degree = 1.0000 Value = -0.0322
## elapsed = 0.16 Round = 68 logCost = 20.0000 logGamma = -2.4477 Degree = 3.0000 Value = -0.0390
## elapsed = 0.11 Round = 69 logCost = 10.3782 logGamma = -9.0000 Degree = 2.0000 Value = -0.6678
## elapsed = 0.49 Round = 70 logCost = 16.6415 logGamma = -4.7413 Degree = 1.0000 Value = -0.0305
##
## Best Parameters Found:
## Round = 10 logCost = 12.6266 logGamma = -4.7561 Degree = 1.0000 Value = -0.0288
OPT_Res$Best_Par
## logCost logGamma Degree
## 12.626620 -4.756093 1.000000
as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 304558.8
as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.008599138
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.03220339
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(42)
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 = 17.8702 logGamma = -8.6453 Value = -0.0390
## elapsed = 0.08 Round = 2 logCost = 18.4269 logGamma = -7.8410 Value = -0.0356
## elapsed = 0.14 Round = 3 logCost = 2.1535 logGamma = -7.2148 Value = -0.4763
## elapsed = 0.14 Round = 4 logCost = 15.7612 logGamma = -5.0450 Value = -0.0305
## elapsed = 0.06 Round = 5 logCost = 11.0436 logGamma = -7.3714 Value = -0.0322
## elapsed = 0.05 Round = 6 logCost = 7.9774 logGamma = -3.0653 Value = -0.0305
## elapsed = 0.06 Round = 7 logCost = 13.4147 logGamma = -8.9350 Value = -0.0322
## elapsed = 0.14 Round = 8 logCost = -1.6333 logGamma = -5.9022 Value = -0.6678
## elapsed = 0.06 Round = 9 logCost = 11.4248 logGamma = -4.7561 Value = -0.0305
## elapsed = 0.05 Round = 10 logCost = 12.6266 logGamma = -8.9870 Value = -0.0305
## elapsed = 0.07 Round = 11 logCost = 6.4435 logGamma = -4.2018 Value = -0.0322
## elapsed = 0.06 Round = 12 logCost = 12.9778 logGamma = -7.6973 Value = -0.0254
## elapsed = 0.16 Round = 13 logCost = 18.3668 logGamma = -6.0380 Value = -0.0271
## elapsed = 0.11 Round = 14 logCost = 1.3857 logGamma = -3.6735 Value = -0.1068
## elapsed = 0.05 Round = 15 logCost = 6.5573 logGamma = -2.5995 Value = -0.0339
## elapsed = 0.43 Round = 16 logCost = 18.5004 logGamma = -4.3499 Value = -0.0288
## elapsed = 0.09 Round = 17 logCost = 19.4557 logGamma = -7.0719 Value = -0.0390
## elapsed = 0.15 Round = 18 logCost = -2.0628 logGamma = -8.2577 Value = -0.6678
## elapsed = 0.09 Round = 19 logCost = 6.8749 logGamma = -8.2937 Value = -0.0847
## elapsed = 0.06 Round = 20 logCost = 9.0083 logGamma = -6.4819 Value = -0.0288
## elapsed = 0.77 Round = 21 logCost = 17.6008 logGamma = -3.4937 Value = -0.0271
## elapsed = 0.14 Round = 22 logCost = -1.5322 logGamma = -8.9980 Value = -0.6678
## elapsed = 0.09 Round = 23 logCost = 19.7223 logGamma = -7.2793 Value = -0.0322
## elapsed = 2.58 Round = 24 logCost = 18.6667 logGamma = -1.3025 Value = -0.0390
## elapsed = 0.14 Round = 25 logCost = -2.9391 logGamma = -1.3634 Value = -0.4203
## elapsed = 0.05 Round = 26 logCost = 7.8553 logGamma = -2.9437 Value = -0.0305
## elapsed = 0.09 Round = 27 logCost = 4.7551 logGamma = -6.2522 Value = -0.0864
## elapsed = 0.37 Round = 28 logCost = 17.6435 logGamma = -4.7507 Value = -0.0271
## elapsed = 0.05 Round = 29 logCost = 6.1742 logGamma = -2.8622 Value = -0.0356
## elapsed = 0.47 Round = 30 logCost = 15.9001 logGamma = -3.8919 Value = -0.0288
## elapsed = 0.10 Round = 31 logCost = 13.4399 logGamma = -3.8335 Value = -0.0288
## elapsed = 0.08 Round = 32 logCost = 15.2764 logGamma = -7.2084 Value = -0.0305
## elapsed = 0.10 Round = 33 logCost = 4.7027 logGamma = -7.2133 Value = -0.1119
## elapsed = 0.06 Round = 34 logCost = 12.1292 logGamma = -5.7912 Value = -0.0305
## elapsed = 0.15 Round = 35 logCost = -4.9013 logGamma = -1.2247 Value = -0.6678
## elapsed = 1.49 Round = 36 logCost = 15.8229 logGamma = -1.0585 Value = -0.0356
## elapsed = 0.14 Round = 37 logCost = -4.8166 logGamma = -2.8962 Value = -0.6678
## elapsed = 0.10 Round = 38 logCost = 0.1915 logGamma = -2.9507 Value = -0.1305
## elapsed = 0.44 Round = 39 logCost = 17.6650 logGamma = -4.5800 Value = -0.0288
## elapsed = 0.07 Round = 40 logCost = 10.2945 logGamma = -8.9812 Value = -0.0475
## elapsed = 0.08 Round = 41 logCost = 4.4890 logGamma = -3.9763 Value = -0.0593
## elapsed = 0.06 Round = 42 logCost = 5.8943 logGamma = -2.0964 Value = -0.0339
## elapsed = 0.14 Round = 43 logCost = -4.0642 logGamma = -2.7999 Value = -0.6678
## elapsed = 0.21 Round = 44 logCost = 19.3385 logGamma = -5.2650 Value = -0.0271
## elapsed = 0.07 Round = 45 logCost = 5.7938 logGamma = -4.5797 Value = -0.0492
## elapsed = 0.62 Round = 46 logCost = 18.9394 logGamma = -4.5666 Value = -0.0407
## elapsed = 0.06 Round = 47 logCost = 17.1939 logGamma = -8.9886 Value = -0.0356
## elapsed = 0.07 Round = 48 logCost = 10.9995 logGamma = -6.0658 Value = -0.0271
## elapsed = 0.75 Round = 49 logCost = 19.2742 logGamma = -3.9499 Value = -0.0390
## elapsed = 0.09 Round = 50 logCost = 10.4710 logGamma = -2.1612 Value = -0.0271
## elapsed = 0.15 Round = 51 logCost = 3.3357 logGamma = -6.0570 Value = -0.1288
## elapsed = 0.11 Round = 52 logCost = 3.6687 logGamma = -5.6123 Value = -0.0898
## elapsed = 0.07 Round = 53 logCost = 4.9621 logGamma = -4.2688 Value = -0.0559
## elapsed = 0.17 Round = 54 logCost = 14.6173 logGamma = -4.1352 Value = -0.0305
## elapsed = 0.18 Round = 55 logCost = -4.0266 logGamma = -3.0628 Value = -0.6678
## elapsed = 0.10 Round = 56 logCost = 13.7199 logGamma = -5.7415 Value = -0.0305
## elapsed = 0.09 Round = 57 logCost = 11.9319 logGamma = -1.4166 Value = -0.0254
## elapsed = 0.13 Round = 58 logCost = -0.7184 logGamma = -1.0588 Value = -0.0949
## elapsed = 0.15 Round = 59 logCost = 1.5272 logGamma = -7.0734 Value = -0.5492
## elapsed = 0.06 Round = 60 logCost = 7.8603 logGamma = -3.0229 Value = -0.0305
## elapsed = 0.10 Round = 61 logCost = 11.8902 logGamma = -1.5450 Value = -0.0254
## elapsed = 1.15 Round = 62 logCost = 19.5704 logGamma = -4.0213 Value = -0.0339
## elapsed = 0.14 Round = 63 logCost = 13.9886 logGamma = -3.7901 Value = -0.0288
## elapsed = 0.07 Round = 64 logCost = 9.1622 logGamma = -1.2666 Value = -0.0254
## elapsed = 0.74 Round = 65 logCost = 16.2422 logGamma = -1.9835 Value = -0.0305
## elapsed = 0.15 Round = 66 logCost = -0.2632 logGamma = -4.2165 Value = -0.4068
## elapsed = 0.08 Round = 67 logCost = 1.7822 logGamma = -2.2234 Value = -0.0763
## elapsed = 0.06 Round = 68 logCost = 15.7040 logGamma = -8.0618 Value = -0.0322
## elapsed = 0.08 Round = 69 logCost = 12.3301 logGamma = -2.6928 Value = -0.0271
## elapsed = 0.13 Round = 70 logCost = 1.0136 logGamma = -3.8552 Value = -0.1305
## elapsed = 0.07 Round = 71 logCost = 0.6157 logGamma = -0.7500 Value = -0.0678
## elapsed = 0.06 Round = 72 logCost = 4.0695 logGamma = -0.7500 Value = -0.0288
## elapsed = 0.09 Round = 73 logCost = 8.4292 logGamma = -9.0000 Value = -0.0763
## elapsed = 0.17 Round = 74 logCost = -5.0000 logGamma = -9.0000 Value = -0.6678
## elapsed = 0.30 Round = 75 logCost = 13.9021 logGamma = -0.7500 Value = -0.0339
## elapsed = 0.08 Round = 76 logCost = 16.9930 logGamma = -7.3682 Value = -0.0288
## elapsed = 0.06 Round = 77 logCost = 7.6373 logGamma = -6.4932 Value = -0.0458
## elapsed = 0.23 Round = 78 logCost = 20.0000 logGamma = -5.7431 Value = -0.0305
## elapsed = 4.14 Round = 79 logCost = 17.5871 logGamma = -0.7500 Value = -0.0305
## elapsed = 0.07 Round = 80 logCost = 9.7130 logGamma = -4.1466 Value = -0.0288
## elapsed = 0.05 Round = 81 logCost = 14.8315 logGamma = -9.0000 Value = -0.0271
## elapsed = 0.06 Round = 82 logCost = 20.0000 logGamma = -9.0000 Value = -0.0254
## elapsed = 0.07 Round = 83 logCost = 4.8784 logGamma = -0.7500 Value = -0.0288
## elapsed = 0.07 Round = 84 logCost = 10.5386 logGamma = -0.7500 Value = -0.0254
## elapsed = 0.06 Round = 85 logCost = 3.0395 logGamma = -2.6821 Value = -0.0610
## elapsed = 0.06 Round = 86 logCost = 7.7719 logGamma = -0.7500 Value = -0.0237
## elapsed = 0.07 Round = 87 logCost = 9.9055 logGamma = -7.2239 Value = -0.0288
## elapsed = 1.54 Round = 88 logCost = 18.1004 logGamma = -1.9317 Value = -0.0339
## elapsed = 2.41 Round = 89 logCost = 20.0000 logGamma = -2.2000 Value = -0.0288
## elapsed = 0.37 Round = 90 logCost = 14.7405 logGamma = -2.1144 Value = -0.0237
##
## Best Parameters Found:
## Round = 86 logCost = 7.7719 logGamma = -0.7500 Value = -0.0237
OPT_Res$Best_Par
## logCost logGamma
## 7.771934 -0.750000
as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 2373.055
as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.4723666
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.03220339