Skip to content

Instantly share code, notes, and snippets.

@jakob-r
Last active May 2, 2016 09:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jakob-r/12a10aed7170246829d93a29e8f01fa9 to your computer and use it in GitHub Desktop.
Save jakob-r/12a10aed7170246829d93a29e8f01fa9 to your computer and use it in GitHub Desktop.
Transform x together with "category" in new x so that randomForest does not mix them up
surrogate.learner = makeLearner("regr.randomForest", predict.type = "se")
myTrafo = function(data, target, category, na.val) {
catf("run mytrafon on data with")
data.notarget = data[, colnames(data) != target, drop = FALSE]
data = cbind(dcast(data.notarget, as.formula(paste0("seq_along(", category, ")~",category)), fill = na.val, value.var = "x", drop = FALSE)[, -1, drop = FALSE], data[,colnames(data) %in% c(category, target), drop = FALSE])
return(data)
}
wrpTrain = function(data, target, args) {
data = myTrafo(data = data, target = target, category = args$category, na.val = args$na.val)
list(data = data, control = list())
}
wrpPredict = function(data, target, args, control) {
myTrafo(data = data, target = target, category = args$category, na.val = args$na.val)
}
surrogate.learner = makePreprocWrapper(learner = surrogate.learner, train = wrpTrain, predict = wrpPredict, par.vals = list(category = "category", na.val = 1024))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment