मेरे पास rfe
लाइब्रेरी caret
लाइब्रेरी से संबंधित प्रश्न है। algorithmआर कैरेट/आरएफ काम के भीतर ट्रेन के लिए क्रॉस-सत्यापन कैसे करता है
इस उदाहरण के लिए मैं 3 गुना पार सत्यापन के साथ rfe
समारोह और एक रेखीय-SVM और 5 गुना के साथ ट्रेन समारोह का उपयोग कर रहा: कैरट-मुखपृष्ठ link पर वे निम्नलिखित RFE एल्गोरिथ्म देना परिणाम का सत्यापन करना।
library(kernlab)
library(caret)
data(iris)
# parameters for the tune function, used for fitting the svm
trControl <- trainControl(method = "cv", number = 5)
# parameters for the RFE function
rfeControl <- rfeControl(functions = caretFuncs, method = "cv",
number= 4, verbose = FALSE)
rf1 <- rfe(as.matrix(iris[,1:4]), as.factor(iris[,5]) ,sizes = c(2,3) ,
rfeControl = rfeControl, trControl = trControl, method = "svmLinear")
- एल्गोरिथ्म ऊपर मैं मान लिया है कि एल्गोरिथ्म 2 नेस्टेड पार सत्यापन के साथ काम करेगा से:
rfe
3 सिलवटोंtrain
समारोह होगा में डेटा (150 नमूने) विभाजित हैं मॉडल पैरामीटर को ट्यून करने के लिए 5 गुना क्रॉस सत्यापन के साथ प्रशिक्षण-सेट (100 नमूने) पर चलाएं - बाद में आरएफई के साथ।
मुझे क्या confuses कि जब मैं rfe
समारोह के परिणामों पर एक नज़र रखना है:
> lapply(rf1$control$index, length)
$Fold1
[1] 100
$Fold2
[1] 101
$Fold3
[1] 99
> lapply(rf1$fit$control$index, length)
$Fold1
[1] 120
$Fold2
[1] 120
$Fold3
[1] 120
$Fold4
[1] 120
$Fold5
[1] 120
कि से ऐसा लगता है कि 5 गुना से प्रशिक्षण सेट के आकार जब मैं 80 के आकार की अपेक्षा करता हूं तो सीवी 120 नमूने होता है ??
तो यह बहुत अच्छा अगर किसी को कैसे RFE और ट्रेन काम एक साथ स्पष्ट कर सकते हैं।
चीयर्स
> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: i386-apple-darwin9.8.0/i386 (32-bit)
locale:
[1] C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] pROC_1.5.4 e1071_1.6-1 class_7.3-5 caret_5.15-048
[5] foreach_1.4.0 cluster_1.14.3 plyr_1.7.1 reshape2_1.2.1
[9] lattice_0.20-10 kernlab_0.9-15
loaded via a namespace (and not attached):
[1] codetools_0.2-8 compiler_2.15.1 grid_2.15.1 iterators_1.0.6
[5] stringr_0.6.1 tools_2.15.1
5-गुना सीवी प्रत्येक सीवी बांह के लिए डेटा सेट के पांचवें हिस्से को छोड़ देता है। इसलिए, आप प्रत्येक बार 120 पर ट्रेन करते हैं और परीक्षण सेट शेष 30 नमूने हैं। 30 नमूने * 5 = 150 नमूने। – tcash21
हां, लेकिन एल्गोरिदम के विवरण के अनुसार 5-गुना-सीवी को 3-गुना-सीवी के परिणामस्वरूप प्रशिक्षण डेटा पर लागू किया जाना चाहिए। तो इसलिए पहला प्रशिक्षण सेट = 150/3 * 2, दूसरा 100/5 * 4 = 80. –
@Fabian_G क्या आपने कभी यह पता लगाया है? मैं एक ही मुद्दे पर चल रहा हूं, और टोपेपो से संपर्क करने या बग रिपोर्ट दर्ज करने पर विचार कर रहा था। – Reilstein