You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Weka中Stratified Sampling拆分数据集问题及参数设置咨询

参数设置逻辑

你提到的5%子样本设20折的逻辑是对的:StratifiedRemoveFold的numberOfFolds参数N代表将数据集切分为N份等大的分层子集,单次操作移除1份的话,剩下的样本占比为(N-1)/N,被移除的样本占比为1/N。

7:3拆分的参数设置方案

你不需要将numberOfFolds设为120,按以下规则设置即可:

  • 要获取30%的测试集:将numberOfFolds设为10,依次执行3次StratifiedRemoveFold操作,每次分别设置foldNumber为1、2、3,将3次移除的子集合并,就是符合分层要求的30%测试集
  • 要获取70%的训练集:将numberOfFolds设为10,依次执行7次StratifiedRemoveFold操作,每次分别设置foldNumber为4、5、6、7、8、9、10,将7次移除的子集合并,就是符合分层要求的70%训练集
    如果希望进一步降低稀有取值被集中分到同一子集的概率,可以将numberOfFolds设为100,30%测试集合并前30份、70%训练集合并后70份即可,切分粒度越细,两个子集的属性分布一致性越高。

兼容性报错修复

你遇到的Training set and Test set are incompatible错误,是因为默认分层抽样仅保证类别标签的分布与全集一致,不会强制其他标称属性的所有取值都覆盖到两个子集,当某个属性的某个取值样本量极小时,就会出现所有该取值样本都被分到训练集的情况。有两种常用修复方案:

  • 拆分前预处理:统计所有标称属性的各取值样本量,将样本量小于5的稀有取值合并为同一其他类,避免出现取值样本量过少的情况
  • 拆分后补全:拆分完成后,对测试集使用AddValues过滤器,导入训练集的属性取值列表,将训练集存在但测试集缺失的取值补到测试集的属性取值定义中,不需要修改实际样本即可解决兼容性错误。

内容的提问来源于stack exchange,提问作者Encipher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:45:10