You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A number of methods in caret_6.0-58 give slightly different results. Setting the seed should result in the same RMSE and R2 (80 methods in caret do that). Exceptions are:
treebag
gbm
bdk
evtree
elm
xyf
parRF
Example code
# load caret and DT the cars data set
require(caret); require(DT); require(mlbench);
library(AppliedPredictiveModeling)
data(solubility)
# load the data and coerce into single frame (legacy)training_data=data.frame(solTrainX,solTrainY)[1:80,]
testing_data=data.frame(solTestX,solTestY)
# just rename columsn to stay conform with style below
colnames(training_data)[colnames(training_data) =='solTrainY'] <-'y'
colnames(testing_data)[colnames(testing_data) =='solTestY'] <-'y'# all the training data (just named x and y)y<-training_data$yx<-training_data[, -ncol(training_data)]
# load all libraries
library(doParallel); cl<- makeCluster(8); registerDoParallel(cl)
# RMSE and R2 results should be the same, three times see knn
set.seed(123); result<- train(x,y,"knn"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"knn"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"knn"); getTrainPerf(result)
# Now the methods that give random results
set.seed(123); result<- train(x,y,"treebag"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"treebag"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"treebag"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"gbm"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"gbm"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"gbm"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"bdk"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"bdk"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"bdk"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"evtree"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"evtree"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"evtree"); getTrainPerf(result)
# elm is the worst offender
set.seed(123); result<- train(x,y,"elm"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"elm"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"elm"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"xyf"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"xyf"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"xyf"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"parRF"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"parRF"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"parRF"); getTrainPerf(result)
# and some working results again
set.seed(123); result<- train(x,y,"rvmLinear"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"rvmLinear"); getTrainPerf(result)
set.seed(123); result<- train(x,y,"rvmLinear"); getTrainPerf(result)
# stop the parallel processing and register sequential front-end
stopCluster(cl); registerDoSEQ();
Results (see correct and incorrect ones, for parRF increase train number to 160).
A number of methods in caret_6.0-58 give slightly different results. Setting the seed should result in the same RMSE and R2 (80 methods in caret do that). Exceptions are:
treebag
gbm
bdk
evtree
elm
xyf
parRF
Example code
Results (see correct and incorrect ones, for parRF increase train number to 160).
The text was updated successfully, but these errors were encountered: