r - 如何在 R 中实现保留验证

标签 r machine-learning classification r-caret

假设我正在使用 Sonar数据,我想在 R 中进行保留验证。我使用 createFolds 对数据进行分区来自caret封装为folds <- createFolds(mydata$Class, k=5) .

然后我想完全使用折叠 mydata[i]作为测试数据并使用 mydata[-i] 训练分类器作为训练数据。

我的第一个想法是使用 train函数,但我找不到任何对保留验证的支持。我在这里遗漏了什么吗?

此外,我希望能够准确使用预定义的折叠作为参数,而不是让函数对数据进行分区。大家有什么想法吗?

最佳答案

我认为也许您想使用 1/5 的数据作为测试集并使用其他 4/5 进行训练?

如果是这种情况,您应该首先使用createDataPartition,然后让train 完成剩下的工作。例如:

> library(caret)
> library(mlbench)
> data(Sonar)
> 
> set.seed(1)
> in_train <- createDataPartition(Sonar$Class, p = 4/5, list = FALSE)
> 
> training <- Sonar[ in_train,]
> testing  <- Sonar[-in_train,]
> 
> nrow(Sonar)
[1] 208
> nrow(training)
[1] 167
> nrow(testing)
[1] 41
> 
> lda_fit <- train(Class ~ ., data = training, method = "lda")
> lda_fit
Linear Discriminant Analysis 

167 samples
 60 predictors
  2 classes: 'M', 'R' 

No pre-processing
Resampling: Bootstrapped (25 reps) 

Summary of sample sizes: 167, 167, 167, 167, 167, 167, ... 

Resampling results

  Accuracy  Kappa  Accuracy SD  Kappa SD
  0.71      0.416  0.0532       0.108  

关于r - 如何在 R 中实现保留验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22972854/

相关文章:

r - SuperLearner 对样本外测试集的预测

r - 在 read_excel R 中打开单元格范围

r - 具有子串键 R 的查找字符串

python - 在keras中定义自定义损失函数

c# - 如何解决使用主成分分析引发的 OutOfMemoryException

python - 如何在sklearn的交叉验证中获得多类roc auc?

html - R Markdown 图图例被切断

machine-learning - 正态分布连续变量的概率计算

math - 评估者间协议(protocol)(Fleiss 的 Kappa、Krippendorff 的 Alpha 等) Java API?

scala - 将主题映射回 Spark LDA 中的文档