我找到了以下代码,它将示例分配为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%用于测试。
我该怎么做?
我不希望将拆分随机化。
答案 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
循环中执行上述步骤,但我不确定您所在的平台。