使用Weka将文件拆分为测试文件和培训文件

时间:2014-04-26 07:54:37

标签: java command-line weka

我找到了以下代码,它将示例分配为75%的培训和25%的测试数据:

java weka.filters.supervised.instance.StratifiedRemoveFolds -i full.arff -o train.arff -c last -N 4 -F 1 -V
java weka.filters.supervised.instance.StratifiedRemoveFolds -i full.arff -o test.arff -c last -N 4 -F 1

但是,我需要分割数据,以便70%用于训练,30%用于测试。

我该怎么做?

我不希望将拆分随机化。

1 个答案:

答案 0 :(得分:0)

基于他们的JavaDoc,一种可能性,虽然有点笨重,但是可以使用10折叠,然后合并3个部分进行测试,并将7个部分合并在一起进行训练。

java weka.filters.supervised.instance.StratifiedRemoveFolds -i full.arff -o piece1.arff -N 10 -F 1    
java weka.filters.supervised.instance.StratifiedRemoveFolds -i full.arff -o piece2.arff -N 10 -F 2
...
java weka.filters.supervised.instance.StratifiedRemoveFolds -i full.arff -o piece10.arff -N 10 -F 10

合并以构建测试集:

java weka.core.Instances append piece1.arff piece2.arff > temp.arff
java weka.core.Instances append temp.arff piece3.arff > test.arff 

合并文档为here

您当然可以在命令行的for循环中执行上述步骤,但我不确定您所在的平台。