2016-07-08 103 views
0

我已经实现了一个ArrayList,它的类型为Instance,通过编写一些代码,我已经从文件中读取了正面实例和负面实例,并根据它们的类标签将它们添加到相关的ArrayList。现在我想知道如何将此ArrayList的类型转换为Instances类型,然后能够使用Weka API的某些方法和类来重新采样它并创建分类器?将实例类型ArrayList转换为实例对象

下面是我的代码。

public class MyDecision { 
double m=0.1; 
double d=0.1; 
private ArrayList<Instance> positiveInstances; 
private ArrayList<Instance> negativeInstances; 
Filter filter; 

private double[] classlabels; 
public MyDecision() throws Exception{ 

     positiveInstances = new ArrayList<Instance>(); 
     negativeInstances = new ArrayList<Instance>(); 

    br = new BufferedReader(new FileReader("D:\\workspace\\MyDecision\\littleMyChurn\\Churn.arff")); 
     ArffSaver saverTets = new ArffSaver(); 
     ArffSaver saverTraining = new ArffSaver(); 
     Instances trainData = new Instances(br); 


    // Make the last attribute be the class 
     trainData.setClassIndex(trainData.numAttributes() - 1); 
     br.close(); 


      classlabels=trainData.attributeToDoubleArray(trainData.numAttributes()-1); 

     for(int i=0;i<=trainData.numInstances()-1;i++){ 

      if(classlabels[i]==0){ 
      positiveInstances.add(trainData.instance(i)); 
      } 

      else if(classlabels[i]==1){    
      negativeInstances.add(trainData.instance(i)); 
       } 
     } 

     Resample resample = new Resample(); 

}}

+0

你有没有找到一个解决办法? –

回答

0

尝试创建自己的ArrayList这样:

ArrayList<Instance> positiveInstances = new ArrayList<>(); 
相关问题