我期待在相同數據上測試不同迴歸/分類算法(即svm,nnet,rpart,randomForest,naiveBayes等)的結果,以查看哪些效果更好。但我需要讓我的代碼儘可能簡短和乾淨。爲了測試所有的算法,我想用包multicore
單mclapply()
調用運行它們:使用單個命令運行帶有不同參數的函數列表
invisible(lapply(c("party","nnet","caret","klaR","randomForest","e1071","rpart",
"multicore"), require, character.only = T))
algorithms <- c(knn3, NaiveBayes, nnet, ctree, randomForest, svm, naiveBayes, rpart)
data(iris)
model <- mclapply(algorithms, function(alg) alg(Species ~ ., iris))
的問題是,一些算法需要額外的參數,即nnet()
需要參數size
進行設置。當然,這可以通過幾個if,else
命令修復,但有沒有更簡單的解決方案?
您可以嘗試用wrapper替換'nnet':算法[[3]] < - function(...)nnet(...,size = your_size)' –