evaluatorUserFunction | R Documentation |
Create an evaluator that uses a user defined function to evaluate the fitness
evaluatorUserFunction(FUN, sepFUN = NULL, ...)
FUN |
Function used to evaluate the fitness |
sepFUN |
Function to calculate the SEP of the variable subsets |
... |
Additional arguments passed to FUN and sepFUN |
The user specified function must take a the response vector as first and the covariates matrix as second argument.
The function must return a number representing the fitness of the variable subset (the higher the value the fitter the subset)
Additionally the user can specify a function that takes a GenAlg
object and returns
the standard error of prediction of the found variable subsets.
Returns an S4 object of type GenAlgUserEvaluator
Other GenAlg Evaluators:
evaluatorFit()
,
evaluatorLM()
,
evaluatorPLS()
ctrl <- genAlgControl(populationSize = 100, numGenerations = 10, minVariables = 5, maxVariables = 12, verbosity = 1) # Use the BIC of a linear model to evaluate the fitness of a variable subset evalFUN <- function(y, X) { return(BIC(lm(y ~ X))); } # Dummy function that returns the residuals standard deviation and not the SEP sepFUN <- function(genAlg) { return(apply(genAlg@subsets, 2, function(subset) { m <- lm(genAlg@response ~ genAlg@covariates[, subset]); return(sd(m$residuals)); })); } evaluator <- evaluatorUserFunction(FUN = evalFUN, sepFUN = sepFUN) # Generate demo-data set.seed(12345) X <- matrix(rnorm(10000, sd = 1:5), ncol = 50, byrow = TRUE) y <- drop(-1.2 + rowSums(X[, seq(1, 43, length = 8)]) + rnorm(nrow(X), 1.5)); result <- genAlg(y, X, control = ctrl, evaluator = evaluator, seed = 123) subsets(result, 1:5)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.