2010-12-17 3 views
1

인스턴스를 균일 한 클래스 분포로 다시 샘플링하려고합니다. 이를 위해 다음 코드를 사용하고 있습니다.Weka Supervised Resample 필터를 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); 
관련 문제