weka中类属性标称值的排序

Posted

技术标签:

【中文标题】weka中类属性标称值的排序【英文标题】:Ordering of nominal values for Class Attribute in weka 【发布时间】:2012-07-29 03:26:40 【问题描述】:

在创建训练集期间,我输入“true”和“false”的顺序与在 WEKA 中创建测试集时输入的顺序相同。这些标称值用于类属性。

当我运行一个分类器时,我不知何故觉得结果在测试集中看起来好像是颠倒的。

我的问题是,如果训练集中的第一行显示类值为“False”,如果训练的模型用于测试集上的 SVM 分类器,是否意味着返回的分类类为 0 ,我应该认为它是 False 吗?

谢谢 阿布舍克S

【问题讨论】:

【参考方案1】:

Here 是 weka 文档的摘录。

从分类实例返回的双精度值(或在 distributionForInstance 返回的数组)只是 属性中的字符串值。也就是说,如果你想要字符串 上面 clsLabel 返回的类标签的表示,那么你 可以这样打印:

System.out.println(clsLabel + " -> " + unlabeled.classAttribute().value((int) clsLabel));

【讨论】:

链接已损坏。我认为它已移至https://waikato.github.io/weka-wiki/use_weka_in_your_java_code/#classifying-instances【参考方案2】:

如果名义属性在两个数据集(训练和测试)中以相同的顺序定义。 输出顺序相同。

标称值编码为“double”。 所以如果你写:false, true => "false" = 0.0 and "true" = 1.0。

【讨论】:

以上是关于weka中类属性标称值的排序的主要内容,如果未能解决你的问题,请参考以下文章

使用 Weka 进行错误的类预测

Weka 逻辑分类器不可用

了解 Weka 中的成本敏感评估(成本矩阵)

Reptree (WEKA),只对数值属性的值排序一次

类别先验在 Weka 分类中的作用

weka - 标准化标称值