分类时跳过功能,但在输出中显示功能

时间:2012-04-06 18:09:38

标签: weka

我创建了一个包含+/- 13000行+/- 50个特征的数据集。我知道如何输出每个分类结果:预测和实际,但我希望能够输出某些ID与这些结果。所以我已经在我的数据集中添加了一个ID列,但我不知道在分类时如何忽略ID,同时仍能输出每个预测结果的ID。我知道如何选择要在每次预测时输出的特征。

2 个答案:

答案 0 :(得分:13)

使用FilteredClassifier。请参阅thisthis

答案 1 :(得分:2)

让我们说bbcsport.arff中要删除的属性,并逐行放在文件attributes.txt中。

塞雷纳 服务
服务

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

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);

&#39;过滤&#39;有最后的属性..

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