如何解决如何在 rfe (caret) 中设置分组 cv 的列车控制索引?
我有一个包含依赖观察的数据库,需要使用分组重采样策略来避免数据泄漏。我预测的结果是二元的。我使用的算法是随机森林(游侠)。我有兴趣确定优化预测的最小特征集(在我的情况下为 AUC 分数)。我在 caret (rfe) 中使用了递归特征消除
我的想法是创建嵌套重采样,在内循环(3 次分割)中使用游侠调整,在外循环(4 次分割)中进行特征选择。我在内循环和外循环中都需要一个分组的 cv。
我创建了外部索引,并为每个外部重采样创建了内部索引。 插入符号中的 RFE 功能是理想的。我可以在 rfeControl(外循环)中设置 index 和 indexOut。我无法做的是在 trainControl(内循环)中设置 index 和 indexOut。
这篇文章有助于理解这个问题。 r caret package,error if I specified index for both rfe control and train control
问题可能在于外部函数 (rfe) 使用与原始数据相同的行指示符,但是一旦 train 看到数据,这些行号的含义就不同了。
您可以这样做,但它需要为外部模型(即参考)的每个重采样设置一组单独的重采样索引,因为每次内部数据都会不同。
我为外部模型的每个重采样创建了一组单独的索引。这是一个包含四个元素的列表(外部 4 cv)。列表的每个元素都有 3 个嵌套的内部索引集。但我无法将其传递给 trainContrl。这是我的代码:
myRFE <- caretFuncs
myRFE$summary<-twoClassSummary
用于为 rfeControl 指定索引
rctrl <- rfeControl(functions=myRFE,method='cv',index = outerIn,number=4)
用于为 trainControl 指定索引
tctrl <- trainControl(classprobs= TRUE,number=3,index = innerIn,summaryFunction = twoClassSummary)
tgrid <- expand.grid(splitrule = 'gini',mtry = c(5:15),min.node.size= c(150,500,1000,2500))
rfe_ens<-rfe(x=x,y=y,rfeControl = rctrl,method='ranger',importance = 'permutation',metric = c("ROC"),tuneGrid = tgrid,trControl=tctrl)
我遇到了这个错误
Error in { : task 1 Failed - "`index` should be lists of integers."
我该如何解决这个问题?有什么想法吗? 谢谢
更多详情
>str(outerIn)
List of 4
$ Fold1: int [1:24720] 7212 1429 13440 22887 9774 20582 1374 7601 9179 9099 ...
$ Fold2: int [1:25275] 18575 11205 30522 13212 12077 7052 5298 8181 28143 18792 ...
$ Fold3: int [1:25269] 32261 16336 25596 23698 20896 16454 32939 6595 25479 14207 ...
$ Fold4: int [1:25032] 31789 12556 14823 23106 15732 18571 5879 11311 13302 6193 ...
>str(innerIn)
List of 4
$ :List of 3
..$ : int [1:16765] 13399 3499 12636 31860 3711 23795 13953 16517 31239 868 ...
..$ : int [1:16280] 10255 24390 10104 11288 11282 33230 5666 21285 24531 6708 ...
..$ : int [1:16395] 17765 16051 1374 13273 22643 2984 11388 13944 9538 2260 ...
$ :List of 3
..$ : int [1:16759] 19490 10627 1060 3853 25696 9679 28456 14230 29989 7830 ...
..$ : int [1:16527] 32816 19534 24884 25402 27611 23251 27084 18135 13758 9663 ...
..$ : int [1:17264] 22451 13223 14577 16678 29490 17251 9949 30096 25587 15406 ...
$ :List of 3
..$ : int [1:16615] 32797 12427 4317 31676 6545 17228 15351 2585 7714 21658 ...
..$ : int [1:16960] 23015 29352 11955 22002 20736 8722 28758 13162 3013 29056 ...
..$ : int [1:16963] 3085 1171 27595 4898 3977 19213 31180 4953 11275 5629 ...
$ :List of 3
..$ : int [1:16521] 14597 16094 7625 32268 30646 16106 24784 13249 22954 1440 ...
..$ : int [1:16939] 31553 14039 10004 21405 12654 26446 10917 5330 14877 27735 ...
..$ : int [1:16604] 1994 25990 6935 13210 27014 31580 18450 3894 4761 4624 ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。