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 model, I prepare a suitable data frame - splitting it into training and test sets and then splitting the training set into 5 folds.
Data2<-data.frame(Data[, c("Group", "Latitude", "Longitude", "OverallAvg")])
# Stratify the entire training set into training and test sets
set.seed(1)
library(caret)
train.index<-createDataPartition(Data2$Group, p=0.8, list = FALSE)
train.set<-Data2[train.index, ]
test.set<-Data2[-train.index, ]
# Stratify the training set into 5 folds
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~Longitude + Latitude + OverallAvg, 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 = 1.30 Round = 1 logCost = 1.6377 Value = -0.0492
## elapsed = 6.24 Round = 2 logCost = 4.3031 Value = -0.0525
## elapsed = 12.65 Round = 3 logCost = 9.3213 Value = -0.0644
## elapsed = 14.44 Round = 4 logCost = 17.7052 Value = -0.0831
## elapsed = 0.43 Round = 5 logCost = 0.0420 Value = -0.0525
## elapsed = 14.95 Round = 6 logCost = 17.4597 Value = -0.0864
## elapsed = 14.81 Round = 7 logCost = 18.6169 Value = -0.1000
## elapsed = 13.43 Round = 8 logCost = 11.5199 Value = -0.0847
## elapsed = 13.21 Round = 9 logCost = 10.7279 Value = -0.0949
## elapsed = 0.15 Round = 10 logCost = -3.4553 Value = -0.0847
## elapsed = 0.41 Round = 11 logCost = 0.1494 Value = -0.0525
## elapsed = 0.33 Round = 12 logCost = -0.5861 Value = -0.0475
## elapsed = 13.67 Round = 13 logCost = 12.1756 Value = -0.0712
## elapsed = 4.75 Round = 14 logCost = 4.6026 Value = -0.0559
## elapsed = 13.87 Round = 15 logCost = 14.2460 Value = -0.0864
## elapsed = 11.19 Round = 16 logCost = 7.4425 Value = -0.0695
## elapsed = 13.72 Round = 17 logCost = 12.9405 Value = -0.1034
## elapsed = 14.50 Round = 18 logCost = 19.7977 Value = -0.0847
## elapsed = 5.06 Round = 19 logCost = 4.5009 Value = -0.0525
## elapsed = 13.96 Round = 20 logCost = 14.4361 Value = -0.1220
## elapsed = 14.11 Round = 21 logCost = 18.3676 Value = -0.0898
## elapsed = 0.31 Round = 22 logCost = 0.3036 Value = -0.0492
## elapsed = 13.75 Round = 23 logCost = 11.2918 Value = -0.1102
## elapsed = 0.17 Round = 24 logCost = -1.8611 Value = -0.0661
## elapsed = 0.66 Round = 25 logCost = 1.6805 Value = -0.0492
## elapsed = 4.74 Round = 26 logCost = 4.6529 Value = -0.0542
## elapsed = 0.12 Round = 27 logCost = -4.6652 Value = -0.1186
## elapsed = 4.63 Round = 28 logCost = 4.5597 Value = -0.0576
## elapsed = 14.79 Round = 29 logCost = 16.7423 Value = -0.1119
## elapsed = 2.93 Round = 30 logCost = 3.5087 Value = -0.0542
## elapsed = 11.50 Round = 31 logCost = 7.0520 Value = -0.0881
## elapsed = 13.01 Round = 32 logCost = 9.9891 Value = -0.0966
## elapsed = 11.45 Round = 33 logCost = 7.3385 Value = -0.0508
## elapsed = 0.47 Round = 34 logCost = -0.3446 Value = -0.0492
## elapsed = 14.55 Round = 35 logCost = 15.6843 Value = -0.0780
## elapsed = 13.56 Round = 36 logCost = 11.7117 Value = -0.0814
## elapsed = 13.96 Round = 37 logCost = 14.8560 Value = -0.1068
## elapsed = 0.19 Round = 38 logCost = -2.3014 Value = -0.0610
## elapsed = 13.94 Round = 39 logCost = 13.0928 Value = -0.0814
## elapsed = 7.71 Round = 40 logCost = 5.2819 Value = -0.0542
## elapsed = 14.14 Round = 41 logCost = 15.5237 Value = -0.0949
## elapsed = 13.45 Round = 42 logCost = 11.1765 Value = -0.1186
## elapsed = 14.23 Round = 43 logCost = 14.5733 Value = -0.1000
## elapsed = 12.26 Round = 44 logCost = 8.8259 Value = -0.0932
## elapsed = 11.99 Round = 45 logCost = 8.2430 Value = -0.0610
## elapsed = 13.96 Round = 46 logCost = 14.7339 Value = -0.0881
## elapsed = 0.13 Round = 47 logCost = -4.4167 Value = -0.1034
## elapsed = 11.64 Round = 48 logCost = 6.9308 Value = -0.0627
## elapsed = 13.74 Round = 49 logCost = 13.3078 Value = -0.1051
## elapsed = 13.99 Round = 50 logCost = 12.3183 Value = -0.0627
## elapsed = 0.86 Round = 51 logCost = 2.6189 Value = -0.0508
## elapsed = 0.92 Round = 52 logCost = 2.1496 Value = -0.0525
## elapsed = 3.18 Round = 53 logCost = 3.6129 Value = -0.0525
## elapsed = 0.98 Round = 54 logCost = 1.6401 Value = -0.0492
## elapsed = 0.86 Round = 55 logCost = 2.4664 Value = -0.0508
## elapsed = 0.72 Round = 56 logCost = 2.0071 Value = -0.0525
## elapsed = 0.76 Round = 57 logCost = 1.7597 Value = -0.0508
## elapsed = 0.62 Round = 58 logCost = 1.2935 Value = -0.0508
## elapsed = 1.00 Round = 59 logCost = 2.1697 Value = -0.0525
## elapsed = 1.44 Round = 60 logCost = 1.6486 Value = -0.0492
## elapsed = 1.67 Round = 61 logCost = 2.3679 Value = -0.0508
## elapsed = 0.97 Round = 62 logCost = 2.5041 Value = -0.0508
## elapsed = 1.15 Round = 63 logCost = 2.4532 Value = -0.0508
## elapsed = 1.16 Round = 64 logCost = 2.0639 Value = -0.0525
## elapsed = 1.18 Round = 65 logCost = 2.1419 Value = -0.0525
## elapsed = 1.09 Round = 66 logCost = 2.6186 Value = -0.0508
## elapsed = 1.30 Round = 67 logCost = 2.1561 Value = -0.0525
## elapsed = 1.06 Round = 68 logCost = 2.5222 Value = -0.0508
## elapsed = 0.83 Round = 69 logCost = 1.7399 Value = -0.0492
## elapsed = 0.49 Round = 70 logCost = 0.9132 Value = -0.0508
##
## Best Parameters Found:
## Round = 12 logCost = -0.5861 Value = -0.0475
OPT_Res$Best_Par
## logCost
## -0.5860812
as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 0.5565039
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~Longitude + Latitude + OverallAvg, 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.04745763
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~Longitude + Latitude + OverallAvg, 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.13 Round = 1 logCost = 1.6377 logGamma = -5.0596 Degree = 4.0000 Value = -0.6678
## elapsed = 0.09 Round = 2 logCost = 4.3031 logGamma = -1.8950 Degree = 2.0000 Value = -0.1034
## elapsed = 0.10 Round = 3 logCost = 9.3213 logGamma = -5.3857 Degree = 2.0000 Value = -0.1644
## elapsed = 0.12 Round = 4 logCost = 17.7052 logGamma = -6.9804 Degree = 5.0000 Value = -0.6678
## elapsed = 0.13 Round = 5 logCost = 0.0420 logGamma = -8.4169 Degree = 4.0000 Value = -0.6678
## elapsed = 0.09 Round = 6 logCost = 17.4597 logGamma = -8.1794 Degree = 2.0000 Value = -0.0915
## elapsed = 0.11 Round = 7 logCost = 18.6169 logGamma = -6.3908 Degree = 2.0000 Value = -0.0695
## elapsed = 0.08 Round = 8 logCost = 11.5199 logGamma = -4.7213 Degree = 3.0000 Value = -0.1593
## elapsed = 0.10 Round = 9 logCost = 10.7279 logGamma = -3.5385 Degree = 5.0000 Value = -0.3407
## elapsed = 0.13 Round = 10 logCost = -3.4553 logGamma = -5.6437 Degree = 3.0000 Value = -0.6678
## elapsed = 0.11 Round = 11 logCost = 0.1494 logGamma = -1.4688 Degree = 5.0000 Value = -0.3559
## elapsed = 0.13 Round = 12 logCost = -0.5861 logGamma = -6.5778 Degree = 4.0000 Value = -0.6678
## elapsed = 0.08 Round = 13 logCost = 12.1756 logGamma = -5.2127 Degree = 2.0000 Value = -0.0881
## elapsed = 0.13 Round = 14 logCost = 4.6026 logGamma = -6.2577 Degree = 3.0000 Value = -0.6678
## elapsed = 0.14 Round = 15 logCost = 14.2460 logGamma = -3.6303 Degree = 2.0000 Value = -0.0729
## elapsed = 0.08 Round = 16 logCost = 7.4425 logGamma = -6.8714 Degree = 1.0000 Value = -0.0797
## elapsed = 0.12 Round = 17 logCost = 12.9405 logGamma = -5.0520 Degree = 4.0000 Value = -0.4102
## elapsed = 12.35 Round = 18 logCost = 19.7977 logGamma = -2.6779 Degree = 1.0000 Value = -0.0610
## elapsed = 0.13 Round = 19 logCost = 4.5009 logGamma = -8.3050 Degree = 3.0000 Value = -0.6678
## elapsed = 0.81 Round = 20 logCost = 14.4361 logGamma = -1.7786 Degree = 4.0000 Value = -0.0898
## elapsed = 0.13 Round = 21 logCost = 18.3676 logGamma = -6.2026 Degree = 5.0000 Value = -0.6186
## elapsed = 0.12 Round = 22 logCost = 0.3036 logGamma = -2.0746 Degree = 3.0000 Value = -0.4136
## elapsed = 0.12 Round = 23 logCost = 11.2918 logGamma = -6.1399 Degree = 3.0000 Value = -0.4712
## elapsed = 0.12 Round = 24 logCost = -1.8611 logGamma = -6.2464 Degree = 2.0000 Value = -0.6678
## elapsed = 0.13 Round = 25 logCost = 1.6805 logGamma = -5.0701 Degree = 4.0000 Value = -0.6678
## elapsed = 0.12 Round = 26 logCost = 4.6529 logGamma = -1.6394 Degree = 3.0000 Value = -0.0814
## elapsed = 0.13 Round = 27 logCost = -4.6652 logGamma = -1.8692 Degree = 3.0000 Value = -0.6678
## elapsed = 0.12 Round = 28 logCost = 4.5597 logGamma = -5.7826 Degree = 2.0000 Value = -0.6610
## elapsed = 2.77 Round = 29 logCost = 16.7423 logGamma = -2.5871 Degree = 2.0000 Value = -0.0831
## elapsed = 0.08 Round = 30 logCost = 3.5087 logGamma = -1.0749 Degree = 3.0000 Value = -0.0898
## elapsed = 0.13 Round = 31 logCost = 7.0520 logGamma = -5.4141 Degree = 3.0000 Value = -0.6424
## elapsed = 0.08 Round = 32 logCost = 9.9891 logGamma = -3.1218 Degree = 1.0000 Value = -0.0475
## elapsed = 0.08 Round = 33 logCost = 7.3385 logGamma = -5.7000 Degree = 1.0000 Value = -0.0661
## elapsed = 0.15 Round = 34 logCost = -0.3446 logGamma = -6.3158 Degree = 4.0000 Value = -0.6678
## elapsed = 0.08 Round = 35 logCost = 15.6843 logGamma = -2.7540 Degree = 5.0000 Value = -0.0831
## elapsed = 0.12 Round = 36 logCost = 11.7117 logGamma = -7.3278 Degree = 3.0000 Value = -0.6678
## elapsed = 0.09 Round = 37 logCost = 14.8560 logGamma = -3.1332 Degree = 3.0000 Value = -0.0644
## elapsed = 0.12 Round = 38 logCost = -2.3014 logGamma = -7.9960 Degree = 3.0000 Value = -0.6678
## elapsed = 0.13 Round = 39 logCost = 13.0928 logGamma = -6.9747 Degree = 5.0000 Value = -0.6678
## elapsed = 0.11 Round = 40 logCost = 5.2819 logGamma = -7.8177 Degree = 3.0000 Value = -0.6678
## elapsed = 0.13 Round = 41 logCost = 15.5237 logGamma = -7.0231 Degree = 4.0000 Value = -0.6678
## elapsed = 0.11 Round = 42 logCost = 11.1765 logGamma = -8.5138 Degree = 3.0000 Value = -0.6678
## elapsed = 0.12 Round = 43 logCost = 14.5733 logGamma = -3.7011 Degree = 2.0000 Value = -0.0729
## elapsed = 0.11 Round = 44 logCost = 8.8259 logGamma = -1.7708 Degree = 2.0000 Value = -0.0729
## elapsed = 0.09 Round = 45 logCost = 8.2430 logGamma = -2.5740 Degree = 4.0000 Value = -0.1373
## elapsed = 0.20 Round = 46 logCost = 14.7339 logGamma = -2.4222 Degree = 3.0000 Value = -0.0593
## elapsed = 0.13 Round = 47 logCost = -4.4167 logGamma = -5.2440 Degree = 2.0000 Value = -0.6678
## elapsed = 0.13 Round = 48 logCost = 6.9308 logGamma = -5.6168 Degree = 4.0000 Value = -0.6678
## elapsed = 0.61 Round = 49 logCost = 13.3078 logGamma = -2.3103 Degree = 1.0000 Value = -0.0492
## elapsed = 0.11 Round = 50 logCost = 12.3183 logGamma = -4.0093 Degree = 4.0000 Value = -0.1898
## elapsed = 0.36 Round = 51 logCost = 20.0000 logGamma = -1.6626 Degree = 5.0000 Value = -0.0695
## elapsed = 0.59 Round = 52 logCost = 20.0000 logGamma = -9.0000 Degree = 1.0000 Value = -0.0492
## elapsed = 7.54 Round = 53 logCost = 19.2744 logGamma = -5.0217 Degree = 1.0000 Value = -0.1051
## elapsed = 0.06 Round = 54 logCost = 10.4309 logGamma = -5.9753 Degree = 1.0000 Value = -0.0492
## elapsed = 12.07 Round = 55 logCost = 16.7631 logGamma = -0.7500 Degree = 1.0000 Value = -0.0644
## elapsed = 0.11 Round = 56 logCost = 8.6485 logGamma = -0.7500 Degree = 3.0000 Value = -0.0559
## elapsed = 0.06 Round = 57 logCost = 6.0472 logGamma = -0.7500 Degree = 1.0000 Value = -0.0475
## elapsed = 0.09 Round = 58 logCost = 20.0000 logGamma = -9.0000 Degree = 2.0000 Value = -0.0814
## elapsed = 6.36 Round = 59 logCost = 20.0000 logGamma = -0.7500 Degree = 3.0000 Value = -0.0661
## elapsed = 0.09 Round = 60 logCost = 6.0879 logGamma = -0.7500 Degree = 5.0000 Value = -0.0814
## elapsed = 0.62 Round = 61 logCost = 11.7751 logGamma = -0.7500 Degree = 1.0000 Value = -0.0492
## elapsed = 0.68 Round = 62 logCost = 20.0000 logGamma = -2.8379 Degree = 4.0000 Value = -0.0898
## elapsed = 0.09 Round = 63 logCost = 1.6812 logGamma = -0.7500 Degree = 1.0000 Value = -0.0729
## elapsed = 0.35 Round = 64 logCost = 17.6692 logGamma = -7.1702 Degree = 1.0000 Value = -0.0492
## elapsed = 13.36 Round = 65 logCost = 20.0000 logGamma = -0.7500 Degree = 1.0000 Value = -0.2305
## elapsed = 6.68 Round = 66 logCost = 18.1262 logGamma = -0.7500 Degree = 4.0000 Value = -0.0898
## elapsed = 0.07 Round = 67 logCost = 16.3781 logGamma = -9.0000 Degree = 1.0000 Value = -0.0475
## elapsed = 9.85 Round = 68 logCost = 14.1569 logGamma = -0.7500 Degree = 2.0000 Value = -0.0814
## elapsed = 6.26 Round = 69 logCost = 20.0000 logGamma = -3.8237 Degree = 2.0000 Value = -0.0814
## elapsed = 0.09 Round = 70 logCost = 5.4847 logGamma = -0.7500 Degree = 2.0000 Value = -0.0729
##
## Best Parameters Found:
## Round = 32 logCost = 9.9891 logGamma = -3.1218 Degree = 1.0000 Value = -0.0475
OPT_Res$Best_Par
## logCost logGamma Degree
## 9.989146 -3.121754 1.000000
as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 21788.68
as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.04407979
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~Longitude + Latitude + OverallAvg, 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.04745763
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~Longitude + Latitude + OverallAvg, 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.16 Round = 1 logCost = 1.6377 logGamma = -5.0596 Value = -0.3712
## elapsed = 0.09 Round = 2 logCost = 4.3031 logGamma = -1.8950 Value = -0.0610
## elapsed = 0.07 Round = 3 logCost = 9.3213 logGamma = -5.3857 Value = -0.0475
## elapsed = 0.20 Round = 4 logCost = 17.7052 logGamma = -6.9804 Value = -0.0458
## elapsed = 0.15 Round = 5 logCost = 0.0420 logGamma = -8.4169 Value = -0.6678
## elapsed = 0.13 Round = 6 logCost = 17.4597 logGamma = -8.1794 Value = -0.0458
## elapsed = 0.24 Round = 7 logCost = 18.6169 logGamma = -6.3908 Value = -0.0475
## elapsed = 0.08 Round = 8 logCost = 11.5199 logGamma = -4.7213 Value = -0.0508
## elapsed = 0.08 Round = 9 logCost = 10.7279 logGamma = -3.5385 Value = -0.0559
## elapsed = 0.15 Round = 10 logCost = -3.4553 logGamma = -5.6437 Value = -0.6678
## elapsed = 0.12 Round = 11 logCost = 0.1494 logGamma = -1.4688 Value = -0.1203
## elapsed = 0.15 Round = 12 logCost = -0.5861 logGamma = -6.5778 Value = -0.6678
## elapsed = 0.07 Round = 13 logCost = 12.1756 logGamma = -5.2127 Value = -0.0492
## elapsed = 0.11 Round = 14 logCost = 4.6026 logGamma = -6.2577 Value = -0.1322
## elapsed = 0.14 Round = 15 logCost = 14.2460 logGamma = -3.6303 Value = -0.0627
## elapsed = 0.08 Round = 16 logCost = 7.4425 logGamma = -6.8714 Value = -0.0644
## elapsed = 0.11 Round = 17 logCost = 12.9405 logGamma = -5.0520 Value = -0.0475
## elapsed = 0.82 Round = 18 logCost = 19.7977 logGamma = -2.6779 Value = -0.0559
## elapsed = 0.14 Round = 19 logCost = 4.5009 logGamma = -8.3050 Value = -0.4288
## elapsed = 0.19 Round = 20 logCost = 14.4361 logGamma = -1.7786 Value = -0.0525
## elapsed = 0.35 Round = 21 logCost = 18.3676 logGamma = -6.2026 Value = -0.0492
## elapsed = 0.12 Round = 22 logCost = 0.3036 logGamma = -2.0746 Value = -0.1203
## elapsed = 0.09 Round = 23 logCost = 11.2918 logGamma = -6.1399 Value = -0.0441
## elapsed = 0.15 Round = 24 logCost = -1.8611 logGamma = -6.2464 Value = -0.6678
## elapsed = 0.14 Round = 25 logCost = 1.6805 logGamma = -5.0701 Value = -0.3610
## elapsed = 0.08 Round = 26 logCost = 4.6529 logGamma = -1.6394 Value = -0.0593
## elapsed = 0.15 Round = 27 logCost = -4.6652 logGamma = -1.8692 Value = -0.6678
## elapsed = 0.10 Round = 28 logCost = 4.5597 logGamma = -5.7826 Value = -0.1153
## elapsed = 0.31 Round = 29 logCost = 16.7423 logGamma = -2.5871 Value = -0.0559
## elapsed = 0.09 Round = 30 logCost = 3.5087 logGamma = -1.0749 Value = -0.0712
## elapsed = 0.07 Round = 31 logCost = 7.0520 logGamma = -5.4141 Value = -0.0610
## elapsed = 0.07 Round = 32 logCost = 9.9891 logGamma = -3.1218 Value = -0.0542
## elapsed = 0.09 Round = 33 logCost = 7.3385 logGamma = -5.7000 Value = -0.0593
## elapsed = 0.17 Round = 34 logCost = -0.3446 logGamma = -6.3158 Value = -0.6153
## elapsed = 0.33 Round = 35 logCost = 15.6843 logGamma = -2.7540 Value = -0.0559
## elapsed = 0.08 Round = 36 logCost = 11.7117 logGamma = -7.3278 Value = -0.0492
## elapsed = 0.28 Round = 37 logCost = 14.8560 logGamma = -3.1332 Value = -0.0610
## elapsed = 0.16 Round = 38 logCost = -2.3014 logGamma = -7.9960 Value = -0.6678
## elapsed = 0.08 Round = 39 logCost = 13.0928 logGamma = -6.9747 Value = -0.0508
## elapsed = 0.13 Round = 40 logCost = 5.2819 logGamma = -7.8177 Value = -0.1983
## elapsed = 0.16 Round = 41 logCost = 15.5237 logGamma = -7.0231 Value = -0.0458
## elapsed = 0.08 Round = 42 logCost = 11.1765 logGamma = -8.5138 Value = -0.0475
## elapsed = 0.15 Round = 43 logCost = 14.5733 logGamma = -3.7011 Value = -0.0610
## elapsed = 0.08 Round = 44 logCost = 8.8259 logGamma = -1.7708 Value = -0.0576
## elapsed = 0.08 Round = 45 logCost = 8.2430 logGamma = -2.5740 Value = -0.0559
## elapsed = 0.20 Round = 46 logCost = 14.7339 logGamma = -2.4222 Value = -0.0559
## elapsed = 0.15 Round = 47 logCost = -4.4167 logGamma = -5.2440 Value = -0.6678
## elapsed = 0.08 Round = 48 logCost = 6.9308 logGamma = -5.6168 Value = -0.0627
## elapsed = 0.13 Round = 49 logCost = 13.3078 logGamma = -2.3103 Value = -0.0610
## elapsed = 0.09 Round = 50 logCost = 12.3183 logGamma = -4.0093 Value = -0.0525
## elapsed = 0.14 Round = 51 logCost = 20.0000 logGamma = -9.0000 Value = -0.0525
## elapsed = 0.22 Round = 52 logCost = 18.7008 logGamma = -0.7500 Value = -0.0661
## elapsed = 0.08 Round = 53 logCost = 6.6655 logGamma = -0.7500 Value = -0.0644
## elapsed = 0.14 Round = 54 logCost = -1.1560 logGamma = -2.3671 Value = -0.4051
## elapsed = 1.09 Round = 55 logCost = 20.0000 logGamma = -4.3638 Value = -0.0576
## elapsed = 0.08 Round = 56 logCost = 14.2765 logGamma = -9.0000 Value = -0.0492
## elapsed = 0.26 Round = 57 logCost = 20.0000 logGamma = -7.7984 Value = -0.0475
## elapsed = 0.12 Round = 58 logCost = 11.4950 logGamma = -0.7500 Value = -0.0678
## elapsed = 0.18 Round = 59 logCost = 20.0000 logGamma = -1.3903 Value = -0.0559
## elapsed = 0.13 Round = 60 logCost = 8.5623 logGamma = -9.0000 Value = -0.0881
## elapsed = 0.09 Round = 61 logCost = 16.7188 logGamma = -0.7500 Value = -0.0661
## elapsed = 0.08 Round = 62 logCost = 4.5941 logGamma = -3.9330 Value = -0.0746
## elapsed = 0.10 Round = 63 logCost = 17.1972 logGamma = -9.0000 Value = -0.0492
## elapsed = 0.08 Round = 64 logCost = 1.6221 logGamma = -0.7500 Value = -0.0898
## elapsed = 1.22 Round = 65 logCost = 18.1765 logGamma = -4.0207 Value = -0.0627
## elapsed = 0.10 Round = 66 logCost = 18.6726 logGamma = -9.0000 Value = -0.0508
## elapsed = 0.13 Round = 67 logCost = -5.0000 logGamma = -9.0000 Value = -0.6678
## elapsed = 0.12 Round = 68 logCost = 2.8361 logGamma = -2.8227 Value = -0.0881
## elapsed = 0.09 Round = 69 logCost = 13.8381 logGamma = -0.7500 Value = -0.0661
## elapsed = 0.09 Round = 70 logCost = 10.1487 logGamma = -0.7500 Value = -0.0729
##
## Best Parameters Found:
## Round = 23 logCost = 11.2918 logGamma = -6.1399 Value = -0.0441
OPT_Res$Best_Par
## logCost logGamma
## 11.291844 -6.139861
as.numeric(exp(OPT_Res$Best_Par["logCost"]))
## [1] 80165.15
as.numeric(exp(OPT_Res$Best_Par["logGamma"]))
## [1] 0.002155223
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~Longitude + Latitude + OverallAvg, 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.0440678