使用StratifiedRemoveFolds示例在weka中创建训练和测试集

Hos*_*ein 3 java classification machine-learning weka

我试图从命令行使用weka运行一些分类.在此链接weka-Primer-commandline中,有以下用于创建测试和训练集的示例:

java weka.filters.supervised.instance.StratifiedRemoveFolds -i data/soybean.arff -o soybean-train.arff \
-c last -N 4 -F 1 -V

java weka.filters.supervised.instance.StratifiedRemoveFolds -i data/soybean.arff -o soybean-test.arff \
-c last -N 4 -F 1
Run Code Online (Sandbox Code Playgroud)

这段代码是否应该为训练提供3/4的数据,为测试集提供1/4的数据?对我来说,似乎只有一部分整个数据(从最后因为-V而来)将被分配用于训练,而只有1倍用于测试.我对吗?我需要3/4数据用于训练,1/4用于测试.

Sic*_*cco 5

文档中的代码是正确的,并将3/4的数据放入列车组中,将1/4的数据放入测试集中.选项意味着以下内容:

  • -N:应该有4个折叠,这意味着数据被分成4个相等的非重叠部分
  • -F:应选择这些部件/折叠中的第一个
  • -V:反转选择

所以创建火车组的第一行工作如下:

  • 创建4折
  • 选择第一个折叠并取相反的结果,选择剩余的3折,即3/4的数据

仅通过选择第一个折叠(即1/4数据)来创建测试.