我添加了我的数据集的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}
所以直到它有正确的顺序。
有人可以告诉我如何在评估中对属性值进行排序?如何确保选择正确的?
答案 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;)。