0

我有一个来自 WEKA 的简单朴素贝叶斯分类器。我正在使用目录结构并通过 TextDirectoryLoader 读取它。目录结构是

Training_Data
     Spam (folder)
         text files
     Ham (folder)
         text files

我可以得到这样的分布

for(Instance i: testInstances){

    double [] distributions = classifier.distributionForInstance(i);
    for(double d : distributions)
        System.out.println(d);
}

我想要做的是让类别名称与分布一起出现,这样我就可以像这样打印出来

System.out.println("Category: "+/*something to get the category name*/+ ":"+ d);

我已经四处寻找几个小时了,不知道该怎么做。有谁知道怎么做?

4

1 回答 1

1

您可以使用instance.classAttribute().value(valIndex)wherevalIndex是类别的索引:

for(Instance i: testInstances){
  double [] distributions = classifier.distributionForInstance(i);
  for(int index = 0; index < distributions.length; index++)
      System.out.println(i.classAttribute().value(index) + ": " + distributions[index]);
}
于 2012-12-03T12:13:46.893 回答