当前位置: 首页 > 知识库问答 >
问题:

R插入符号/rfe内培训的交叉验证如何工作

钮善
2023-03-14

我有一个关于插入符号库中的RFE函数的问题。在插入符号-主页链接上,它们给出了以下RFE算法:算法

对于本例,我使用具有3重交叉验证的RFE函数,使用具有线性SVM和5重交叉验证的train函数。

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个嵌套交叉验证一起工作:
    1. RFE将数据(150个样本)拆分为3个折叠
    2. train函数将在训练集(100个样本)上运行,并进行5次交叉验证,以调整模型参数--以及随后的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

干杯

> 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   

共有1个答案

慕容雅珺
2023-03-14

这里的问题是lapply(RF1$fit$control$index,length)没有存储我们认为它所做的事情。

让我明白有必要查一下代码。在那里发生的情况如下:

调用RFE时,整个数据将传递给nominalrfeWorkflow

 类似资料:
  • 我正在工作中的一些数据上建立一个随机森林(这意味着我不能分享那个数据,有15K个观测),使用插入符号训练函数进行交叉验证,模型的准确率很低:0.9%。 下面是我使用的代码: --edit2 以下是有关我的数据的一些详细信息: 15493 OBS。17个变量中: ICNUmber是一个包含1531个不同值的字符串,这些是类 其他16个变量是具有33个级别的因子 --edit2 --edit3 我的最

  • 交叉验证 那么什么时候才需要交叉验证呢?交叉验证用在数据不是很充足的时候。比如在我日常项目里面,对于普通适中问题,如果数据样本量小于一万条,我们就会采用交叉验证来训练优化选择模型。如果样本大于一万条的话,我们一般随机的把数据分成三份,一份为训练集(Training Set),一份为验证集(Validation Set),最后一份为测试集(Test Set)。用训练集来训练模型,用验证集来评估模型预

  • 本文向大家介绍scikit-learn 使用交叉验证训练分类器,包括了scikit-learn 使用交叉验证训练分类器的使用技巧和注意事项,需要的朋友参考一下 示例 使用虹膜数据集: 数据分为训练集和测试集。要做到这一点,我们使用train_test_split效用函数来分割双方X和y(数据和目标矢量)用随机选择train_size=0.75(训练集包含数据的75%)。 训练数据集被输入到k最近邻

  • 问题内容: 我正在尝试进行交叉验证,并且遇到一个错误:“找到的输入变量样本数量不一致:[18,1]” 我在熊猫数据框(df)中使用不同的列作为要素,最后一列作为标签。这源自UC Irvine的机器学习存储库。导入我过去使用过的交叉验证程序包时,我收到了一个错误消息,说明它可能已贬值。我将运行决策树,SVM和K-NN。 我的代码是这样的: 任何帮助将是巨大的! 问题答案: 不推荐使用该模块。新模块已

  • DevOps培训认证可以帮助任何渴望成为DevOps工程师职业的人。认证可从亚马逊网络服务,红帽,微软学院,DevOps Institute获得。 下面我们将一个一个地来了解他们 - AWS认证DevOps工程师 此DevOps工程师证书将测试如何使用最常见的DevOps模式在AWS上开发,部署和维护应用程序。它还会评估DevOps方法的核心原则。 该认证有两个必要条件。认证费用为美元,持续时间为

  • *种子为重复性设置为123,我运行的是3.63 R。