首页 > 解决方案 > 如何使用插入符号在递归特征消除中进行下采样?

问题描述

考虑这里创建的数据框data

set.seed(123)
num = sample(5:20, replace = T, 20)
id = letters[1:20]
loc <- rep(id, num)
data <- data.frame(Location = loc)
data[paste0('var', seq_along(1:10))] <- rnorm(length(id) * sum(num))

假设data是我的训练数据;每行代表对分组变量标识的人群中随机抽样的个体进行的测量Location。我想使用递归特征消除来确定预测的最佳预测子集Location。类似地,我想了解每个预测变量解释了多少变化Location(即,哪些是最重要的,以及它们有多重要)。我已经阅读了如何使用 caret 包使用以下内容来完成此操作:

library(caret)
subsets <- 1:9
ctrl <- rfeControl(functions = lmFuncs, method = "repeatedcv", repeats = 10, verbose = F)
lmProfile <- rfe(data[,2:10], data[,1], sizes = subsets, rfeControl = ctrl)

在我的data示例中,考虑到每个 中的样本数量不平衡Location,我想使用下采样来确保Location在每次迭代时跨级别考虑相同数量的样本。有人可以演示我如何做到这一点吗?

标签: rmachine-learningr-caretfeature-selectionrfe

解决方案


推荐阅读