Weka预测分布中的类值排序错误

时间:2016-09-01 21:35:23

标签: java classification weka

我添加了我的数据集的class-attribute,如下所示(对于train-和testset也是如此):

ArrayList<String> nomValues = new ArrayList<>();
nomValues.add("1");
nomValues.add("0");
datasetBinary_train.insertAttributeAt(new Attribute("class", nomValues), datasetBinary_train.numAttributes());

所以我假设值1位于位置0,值0位于位置1。

因此,我假设我double[]获得的NominalPrediction.distribution()将在0位具有类“1”的类概率。

检查分类结果似乎反之亦然。

One Prediction看起来像这样。

  

NOM:1.0 0.0 1.0 0.6081479321383793 0.3918520678616207

其中1是实际的类,0是预测的类(然后是权重,下一个是分布)。我认为标签“0”的概率更高,这意味着标记为“0”的实例的概率显示在索引0

评估标题显示

  

@attribute(...)

     

@attribute class {1,0}

所以直到它有正确的顺序。

有人可以告诉我如何在评估中对属性值进行排序?如何确保选择正确的?

1 个答案:

答案 0 :(得分:1)

您将标签与标签索引混淆(Weka在内部使用基于0的索引来表示标签):

NOM: <actual label index> <predicted label index> <weight> <distribution>

实际标签索引是1.0(&#34; 0&#34;),预测索引是0.0(&#34; 1&#34;),权重是1.0,分布是&#34; 0.61 0.39 &#34 ;.基于分布,第一个标签被预测(0.0或&#34; 1&#34;)。