Weka 预测分布中 class 值的错误排序
Wrong ordering of class values in Weka Prediction Distribution
我添加了我的数据集的 class-attribute,如下所示(同样适用于训练集和测试集):
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()
得到的 class-probability 对于 class “1” 在位置 0.
检查 classification-result 似乎反之亦然
一个预测看起来像这样。
NOM: 1.0 0.0 1.0 0.6081479321383793 0.3918520678616207
其中 1 是实际的 class,0 是预测的 class(然后是权重,接下来是分布)。我认为观察到标签“0”的概率更高,这意味着标记为“0”的实例的概率显示在索引 0
评价header说
@attribute (...)
@attribute class {1,0}
所以直到它有正确的顺序。
谁能告诉我 attribute-values 在评估中是如何排序的?如何保证选对了?
您将标签与标签索引混淆了(Weka 在内部使用基于 0 的索引来表示标签):
NOM: <actual label index> <predicted label index> <weight> <distribution>
实际标签指数为1.0(“0”),预测指数为0.0(“1”),权重为1.0,分布为“0.61 0.39”。根据分布,预测第一个标签(0.0 或“1”)。
我添加了我的数据集的 class-attribute,如下所示(同样适用于训练集和测试集):
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()
得到的 class-probability 对于 class “1” 在位置 0.
检查 classification-result 似乎反之亦然
一个预测看起来像这样。
NOM: 1.0 0.0 1.0 0.6081479321383793 0.3918520678616207
其中 1 是实际的 class,0 是预测的 class(然后是权重,接下来是分布)。我认为观察到标签“0”的概率更高,这意味着标记为“0”的实例的概率显示在索引 0
评价header说
@attribute (...)
@attribute class {1,0}
所以直到它有正确的顺序。
谁能告诉我 attribute-values 在评估中是如何排序的?如何保证选对了?
您将标签与标签索引混淆了(Weka 在内部使用基于 0 的索引来表示标签):
NOM: <actual label index> <predicted label index> <weight> <distribution>
实际标签指数为1.0(“0”),预测指数为0.0(“1”),权重为1.0,分布为“0.61 0.39”。根据分布,预测第一个标签(0.0 或“1”)。