I'm trying to conduct recursive feature elimination (RFE) referring to Ch19.7 of the book "Applied Predictive Modeling" by Max Kuhn.

In the book, it uses 5 repeated 10-fold cv for RFE.
To do this, it split data set by creating indexes for training data using:
caret::createMultiFolds(y, times = 5, k = 10) and then it uses caret::rfe() function under control of caret::rfeControl(method = "repeatedcv", repeat = 5, ...) to do the RFE.

It seems that it is 10-fold cv because of k = 10 in createMultiFolds() and 5 times repetition because of repeat = 5 in rfeControl()

The problem is that I cannot fully understand why this is 5 repeated 10-fold cv. From the createMultiFolds(), 50 groups of indexes are sampled like:

Fold1.Rep1: [data type] [dimension] [contents]  
Fold2.Rep1 ~~  
Fold10.Rep1 ~~  
Fold1.Rep2 ~~  
Fold2.Rep2 ~~  
Fold10.Rep5 ~~

And once rfe() is run with rfeControl(method = "repeatedcv", repeats = 5, ...), it iterates RFE algorithm 5 times over the entire 50 groups (the indexes in each group are unchanged after they created by createMultiFolds()).
But, I can't understand why it repeats 5 times for the same training data. I believe that it's sufficient to use only the 10 groups with "Rep1" to do the 10-fold cv with 5 times repetition.

Why does it need all the 50 groups? and Why "repeat = 5" for rfe()?

Thank you


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.