2012-04-06 35 views
17

我创建了一个包含+/- 15000行+/- 50功能的数据集。我知道如何输出每个分类结果:预测和实际,但我希望能够用这些结果输出某种类型的ID。所以我已经添加了一个ID列到我的数据集中,但我不知道在分类时如何忽略ID,同时仍然能够输出每个预测结果的ID。我知道如何选择要输出每个预测的功能。在分类时跳过功能,但在输出中显示功能

回答

11

使用FilteredClassifier。见thisthis

+3

作为一个过滤器,使用'weka.filters。 unsupervised.attribute.Remove' – drevicko 2013-08-22 01:59:52

2

比方说follwoing是要删除,是由线文件attributes.txt中线上bbcsport.arff属性..

小威
服务
服务

引人注目
网球
抢七
比赛
温网
..
下面介绍如何通过设置true或false来包含或排除属性。 (相互难以捉摸)remove.setInvertSelection(

BufferedReader datafile = new BufferedReader(new FileReader("bbcsport.arff")); 
BufferedReader attrfile = new BufferedReader(new FileReader("attributes.txt")); 

Instances data = new Instances(datafile); 
List<Integer> myList = new ArrayList<Integer>(); 
String line; 

while ((line = attrfile.readLine()) != null) { 
    for (n = 0; n < data.numAttributes(); n++) { 
    if (data.attribute(n).name().equalsIgnoreCase(line)) { 
     if(!myList.contains(n)) 
     myList.add(n); 
    } 
    } 
} 

int[] attrs = myList.stream().mapToInt(i -> i).toArray(); 
Remove remove = new Remove(); 
remove.setAttributeIndicesArray(attrs); 
remove.setInvertSelection(false); 
remove.setInputFormat(data); // init filter 

Instances filtered = Filter.useFilter(data, remove); 

'过滤' 的最终属性..

我的博客.. http://ojaslabs.com/include-exclude-attributes-in-weka