18

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

4

2 回答 2

14

使用过滤分类器。看到这个这个

于 2012-04-06T22:24:15.500 回答
2

假设以下是您要删除的 bbcsport.arff 中的属性,并且逐行位于文件 attributes.txt 中。

serena
发球
服务
设置
引人注目的
网球
tiebreak
锦标赛
温布尔登
..
以下是您如何通过设置 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);

“过滤”具有最终属性..

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

于 2017-05-15T06:36:14.543 回答