Как использовать Weka Supervised Resample Filter в Java-коде? - PullRequest
1 голос
/ 17 декабря 2010

Я хочу повторно выбрать экземпляры для равномерного распределения классов.Для этого я использую следующий код.

import weka.core.Instances;

import weka.filters.supervised.instance.*;

...

String Fliteroptions="-B 1.0";
sampler.setOptions(weka.core.Utils.splitOptions(Fliteroptions));
sampler.setRandomSeed((int)System.currentTimeMillis());

data = // ... Instances leaded from ARFF file ...

data = Resample.useFilter(data, sampler);

Но получаю следующую ошибку:

Zero Weights processed. Default weights will be used
java.lang.IllegalStateException: No input instance format defined
 at weka.filters.supervised.instance.Resample.input(Resample.java:443)
 at weka.filters.Filter.useFilter(Filter.java:655)
 at WekaClassify.main(WekaClassify.java:84)

Кто-нибудь знает, что здесь происходит и как я могу получить этоработать?

Ответы [ 2 ]

3 голосов
/ 29 июня 2012

После загрузки данных просто добавьте следующее утверждение:

sampler.setInputFormat(data);
3 голосов
/ 21 апреля 2011
ArffLoader loader = new ArffLoader();
loader.setFile(new File("some.arff"));
Instances data= loader.getStructure();
// you missed this
sampler.setInputFormat(data);
...