Я хочу проверить результаты различных алгоритмов регрессии/классификации (например, svm, nnet, rpart, randomForest, naiveBayes и т. д.) на одних и тех же данных, чтобы увидеть, какой из них работает лучше. Но мне нужно, чтобы мой код был как можно короче и чище. Чтобы протестировать все алгоритмы, я хочу запустить их, используя один вызов mclapply()
пакета 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
команд, но есть ли более простое решение?
nnet
оберткой:algorithms[[3]] <- function(...) nnet(...,size=your_size)
- person Ferdinand.kraft   schedule 29.03.2013