我正在寻找在相同数据上测试不同回归/分类算法(即 svm、nnet、rpart、randomForest、naiveBayes 等)的结果,看看哪个效果更好。但我需要让我的代码尽可能短而干净。为了测试所有算法,我想使用一次mclapply()
package 调用来运行它们multicore
:
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
命令来解决,但是有没有更简单的解决方案?