Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. library(mlr)
  2.  
  3. # Define the tuning problem
  4. ps = makeParamSet(
  5. makeDiscreteParam("C", values = 2^(-2:2)),
  6. makeDiscreteParam("sigma", values = 2^(-2:2))
  7. )
  8. ctrl = makeTuneControlGrid()
  9. rdesc = makeResampleDesc("Holdout")
  10. lrn = makeLearner("classif.ksvm")
  11.  
  12.  
  13. # Define a wrapper to save all models that were trained with it
  14. makeSaveWrapper = function(learner) {
  15. mlr:::makeBaseWrapper(
  16. id = paste0(learner$id, "save", sep = "."),
  17. type = learner$type,
  18. next.learner = learner,
  19. par.set = makeParamSet(),
  20. par.vals = list(),
  21. learner.subclass = "SaveWrapper",
  22. model.subclass = "SaveModel")
  23. }
  24.  
  25. trainLearner.SaveWrapper = function(.learner, .task, .subset, ...) {
  26. m = train(.learner$next.learner, task = .task, subset = .subset)
  27. stored.models <<- c(stored.models, list(m)) # not very efficient, maybe you want to save on hard disk here?
  28. mlr:::makeChainModel(next.model = m, cl = "SaveModel")
  29. }
  30.  
  31. predictLearner.SaveWrapper = function(.learner, .model, .newdata, ...) {
  32. NextMethod(.newdata = .newdata)
  33. }
  34.  
  35. stored.models = list() # initialize empty list to store results
  36. lrn.saver = makeSaveWrapper(lrn)
  37.  
  38. res = tuneParams(lrn.saver, task = iris.task, resampling = rdesc, par.set = ps, control = ctrl)
  39.  
  40. stored.models[[1]] # the normal mlr trained model
  41. stored.models[[1]]$learner.model # the underlying model
  42. getLearnerParVals(stored.models[[1]]$learner) # the hyper parameter settings
  43. stored.models[[1]]$subset # the indices used to train the model
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement