splitTools的create_folds设固定seed后m_rep次交叉验证数据集是否相同?
问题解答
结论
设置固定随机种子不会让5次重复迭代的训练集、测试集完全相同,仅能保证每次运行这段代码得到的5组划分结果完全可复现。
具体逻辑说明
m_rep=5的作用是生成5组独立的10折交叉验证划分,最终输出结果包含5*10个测试集索引,5组划分本身默认就是互不重复的。- 你传入的
seed=42是给整个划分流程设置全局随机状态,仅用于保证结果可复现:每次运行以下代码
create_folds(data[[targetVariable]], k = 10, m_rep = 5, type = "stratified", shuffle = TRUE, seed = 42)
得到的5组10折划分结果完全一致,但同一轮运行中5次重复的划分都是独立随机生成的,互不相同。
- 结合你设置的
shuffle=TRUE、type="stratified"参数,5次重复的划分都是在种子控制下独立完成的分层随机抽样,不会出现重复的训练/测试集拆分。
实现所有重复迭代的折划分完全相同的方案
如果你需要5次重复的折划分完全一致,可将m_rep设置为1,循环调用5次create_folds函数,每次调用时都传入相同的固定seed即可,示例代码如下:
# 示例:生成5组完全相同的10折划分 folds_list = [] for _ in range(5): folds = create_folds(data[[targetVariable]], k = 10, m_rep = 1, type = "stratified", shuffle = TRUE, seed = 42) folds_list.append(folds)
内容的提问来源于stack exchange,提问作者Mine
相关产品推荐
相关产品推荐

