aboutsummaryrefslogtreecommitdiff
path: root/R/gensvm.grid.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/gensvm.grid.R')
-rw-r--r--R/gensvm.grid.R35
1 files changed, 2 insertions, 33 deletions
diff --git a/R/gensvm.grid.R b/R/gensvm.grid.R
index 2acdc2f..f954b79 100644
--- a/R/gensvm.grid.R
+++ b/R/gensvm.grid.R
@@ -162,7 +162,8 @@ gensvm.grid <- function(X, y, param.grid='tiny', refit=TRUE, scoring=NULL, cv=3,
}
# Validate the range of the values for the gridsearch
- gensvm.validate.param.grid(param.grid)
+ if (!gensvm.validate.param.grid(param.grid))
+ return(NULL)
# Sort the parameter grid for efficient warm starts
param.grid <- gensvm.sort.param.grid(param.grid)
@@ -379,38 +380,6 @@ gensvm.generate.cv.idx <- function(n, folds)
return(cv.idx)
}
-gensvm.validate.param.grid <- function(df)
-{
- expected.colnames <- c("kernel", "coef", "degree", "gamma", "weight",
- "kappa", "lambda", "p", "epsilon", "max.iter")
- for (name in colnames(df)) {
- if (!(name %in% expected.colnames)) {
- stop("Invalid header name supplied in parameter grid: ", name)
- }
- }
-
- conditions <- list(
- p=function(x) { x >= 1.0 && x <= 2.0 },
- kappa=function(x) { x > -1.0 },
- lambda=function(x) {x > 0.0 },
- epsilon=function(x) { x > 0.0 },
- gamma=function(x) { x != 0.0 },
- weight=function(x) { x %in% c("unit", "group") },
- kernel=function(x) { x %in% c("linear", "poly", "rbf", "sigmoid") }
- )
-
- for (idx in 1:nrow(df)) {
- for (param in colnames(df)) {
- if (!(param %in% names(conditions)))
- next
- func <- conditions[[param]]
- value <- df[[param]][idx]
- if (!func(value))
- stop("Invalid value in grid for parameter: ", param)
- }
- }
-}
-
gensvm.cv.results <- function(results, param.grid, cv.idx, y.true,
scoring, return.train.score=TRUE)
{