概述
在插入符号包中,有没有办法在trainControl的交叉验证方案的折叠中使用递归特征消除函数,该函数传递给使用调整网格的列车函数?
我喜欢递归特征消除功能,但它确实应该应用于交叉验证中的训练折叠,然后在保持折叠上进行测试 .
我已经玩了很多不同的方法来做到这一点,但没有一个是完美的 . 例如,我可以进行自己的交叉验证折叠并使用method ='none'运行trainControl,但不会在列车中使用训练网格(需要评估组) . 我也可以在trainControl中创建我自己的cv折叠,并且有method ='cv'(我可以在这里使用调整网格),但是最好的调整是在trainControl保持生成的保持样本上选择的,不是我的坚持
有没有办法告诉插入符号在预先指定的保持折叠(在消除特征之前采取的那个)上使用调整网格评估模型?
在我的工作流程中,我正在使用自己的调整网格测试几种不同的模型类型 . 我非常喜欢有部分插入符号,我花了很多时间在这上面,所以我想使用它,但如果我不能让它工作,这是一个交易破坏者 . 我愿意接受任何建议!
提前致谢-
解决方案:我的解决方案可能不是最有效的,但似乎有效 . 我使用以下信息进行了交叉验证折叠:https://stats.stackexchange.com/questions/61090/how-to-split-a-data-set-to-do-10-fold-cross-validation . 使用createFolds(插入符函数)不会创建相等的折叠,所以我选择了第二个解决方案 . 看起来你可能会用插入的方式来做这件事's stratified sampling, but I haven' t .
此代码在每个cv折叠中使用自举方法,并预测每次迭代的保持折叠中的所有观察 .
## Make the folds for the cross validation
folds %
sample(., length(.), replace= F)
for(f in 1:10) {
testIndexes
trainIndexes
trainIndexList
testIndexList
testData
trainData
## Make the train control object
train_control
numbe r= 1,
summaryFunction = modfun,
preProcOptions = c('center', 'scale', newdata= testData),
index = trainIndexList,
indexOut = testIndexList,
classProbs = T,
savePredictions = T)
## Feature Selection
## Make the control for the recursive feature elimination
rfe_control
## Generate the data frame based on feature selection
fs_results
trainData[,'target'],
sizes=c(2:ncol(trainData)),
rfeControl= rfe_control)
use_features
features % data.frame(features= .) %>% mutate(fold= f) %>%
rbind(features, .) ## Specify features as a data frame ahead of time
data_min % data.frame()
...(建模代码,包括列车功能和所需输出)......
}
我还没有试过做一个lapply而不是for循环 . 我很感激任何提高效率的建议 .
最后
以上就是听话过客为你收集整理的java折叠质量_使用Caret选择交叉验证折叠内的特征的全部内容,希望文章能够帮你解决java折叠质量_使用Caret选择交叉验证折叠内的特征所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复