如何在java中使用weka处理非常大的arff数据集

时间:2015-05-12 15:51:30

标签: java hadoop machine-learning weka

我正在尝试在java中使用weka运行J48分类器。我从异常和gc_error中获取内存。我试过调试,我注意到它读了arff文件,

 d = new DataInputStream(fs.open(new Path(filePath)));
                  reader = new BufferedReader(new InputStreamReader(d));
                  arff = new ArffReader(reader, 100000);
                  data = arff.getStructure();
                  data.setClassIndex(data.numAttributes() - 1);
                  System.out.println("====add each line");
                  // Add each line to the input stream
                  while ((inst = arff.readInstance(data)) != null) {            
                      //inst.setDataset(data);  
 data.add(inst);             
                  }
                    System.out.println("close reader");     
                  reader.close();

这里,当我使用data.add(inst)时,"关闭阅读器"不会被打印,我习惯得到gc_error所以我搜索了在线帮助,它被提到使用inst.setDataset(数据),但我做了那个映射器不会工作,它直接减少。

0 个答案:

没有答案