2010-12-17 7 views
1

インスタンスを均一なクラスの分布に再サンプリングしたいと思います。このために、私は次のコードを使用しています。Weka Supervised Resample FilterをJavaコードで使用する方法?

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

これはsampler'が何であるか 'の宣言と初期化とはるかに有用であろう。 –

答えて

3

データのロード後、ちょうど次のステートメントを追加します。

sampler.setInputFormat(data); 
3
ArffLoader loader = new ArffLoader(); 
loader.setFile(new File("some.arff")); 
Instances data= loader.getStructure(); 
// you missed this 
sampler.setInputFormat(data); 
関連する問題