如何在R的tidymodels中基于双变量执行分层抽样拆分训练测试集
基于多变量的分层抽样拆分数据集(tidymodels)
要同时基于cyl和gear两个变量实现分层抽样,只需要在initial_split()的strata参数里传入包含这两个变量的向量即可,用c()把变量名组合起来就行。
修改后的完整可复现代码如下:
library(tidymodels) library(tidyverse) # 基于cyl和gear两个变量分层拆分数据集 split <- initial_split(mtcars, prop = 0.7, strata = c(cyl, gear)) train <- split %>% training() test <- split %>% testing()
验证分层效果(可选)
可以检查训练集和测试集中cyl与gear的组合分布是否一致,确保抽样是按分层比例执行的:
# 查看训练集的组合分布及占比 train %>% count(cyl, gear) %>% mutate(prop = n / sum(n)) # 查看测试集的组合分布及占比 test %>% count(cyl, gear) %>% mutate(prop = n / sum(n))
对比两组的prop列,就能确认两个数据集里各变量组合的占比和原数据集基本一致,实现了多变量分层抽样的效果。
内容的提问来源于stack exchange,提问作者jaykay
相关产品推荐
相关产品推荐

