Разделить файл на тестовый файл и обучающий файл с помощью Weka

1

Я нашел следующий код, который распространяет примеры как 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
    Векторы объектов не должны переставляться в случайном порядке перед разбиением
Теги:
command-line
weka

1 ответ

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 

Документация для слияния находится здесь.

Конечно, вы могли бы выполнить описанные выше шаги в цикле for в командной строке, но я не уверен, на какой платформе вы находитесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню