我正在尝试使用weka在命令行上运行一些分类。在这个链接weka-Primer-commandline中,有一个创建测试和训练集的示例:
java weka.filters.supervised.instance.StratifiedRemoveFolds -i data/soybean.arff -o soybean-train.arff \-c last -N 4 -F 1 -Vjava weka.filters.supervised.instance.StratifiedRemoveFolds -i data/soybean.arff -o soybean-test.arff \-c last -N 4 -F 1
这段代码是否应该将数据的3/4用于训练,1/4用于测试集?在我看来,似乎只有整个数据的一个折叠(因为-V参数)会被分配给训练,而只有一个折叠用于测试。我的理解正确吗?我需要3/4的数据用于训练,1/4用于测试。
回答:
文档中的代码是正确的,将数据的3/4放入训练集,1/4放入测试集。这些选项的含义如下:
-N
:应该有4个折叠,这意味着数据被分成4个相等的、不重叠的部分-F
:应选择这些部分/折叠中的第一个-V
:反转选择
因此,创建训练集的第一行代码的工作原理如下:
- 创建4个折叠
- 选择第一个折叠并取其反转,结果是选择剩余的3个折叠,即数据的3/4
测试集的创建只是简单地选择第一个折叠,即数据的1/4。