【问题标题】:How to use Weka Supervised Resample Filter in Java Code?如何在 Java 代码中使用 Weka 监督重采样过滤器?
【发布时间】:2011-05-27 06:16:44
【问题描述】:

我想将实例重新采样到统一的类分布。为此,我使用以下代码。

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)

有人知道这里发生了什么吗?我怎样才能让它工作?

【问题讨论】:

  • 这对于 sampler 的声明和初始化会更有用。

标签: java filter weka resampling


【解决方案1】:

加载数据后,只需添加以下语句:

sampler.setInputFormat(data);

【讨论】:

    【解决方案2】:
    ArffLoader loader = new ArffLoader();
    loader.setFile(new File("some.arff"));
    Instances data= loader.getStructure();
    // you missed this
    sampler.setInputFormat(data);
    

    【讨论】:

      猜你喜欢
      • 2022-01-11
      • 2020-11-09
      • 2014-06-06
      • 2010-12-24
      • 1970-01-01
      • 2018-09-13
      • 2015-10-16
      • 2014-07-05
      • 1970-01-01
      相关资源
      最近更新 更多