在创建训练集期间,我输入“true”和“false”的顺序与在 WEKA 中创建测试集时输入的顺序相同。这些标称值用于类属性。
当我运行一个分类器时,我不知何故觉得结果在测试集中看起来好像是颠倒的。
我的问题是,如果训练集中的第一行显示类值为“False”,并且如果训练的模型用于测试集的 SVM 分类器中,是否意味着返回的分类类为 0,我应该认为它是假的?
谢谢阿布舍克 S
在创建训练集期间,我输入“true”和“false”的顺序与在 WEKA 中创建测试集时输入的顺序相同。这些标称值用于类属性。
当我运行一个分类器时,我不知何故觉得结果在测试集中看起来好像是颠倒的。
我的问题是,如果训练集中的第一行显示类值为“False”,并且如果训练的模型用于测试集的 SVM 分类器中,是否意味着返回的分类类为 0,我应该认为它是假的?
谢谢阿布舍克 S
如果名义属性在两个数据集(训练和测试)中以相同的顺序定义。输出将按照相同的顺序。
标称值编码为“双”。所以如果你写:{false, true} => "false" = 0.0 and "true" = 1.0。
这是 weka 文档的摘录。
从分类实例返回的双精度值(或 distributionForInstance 返回的数组中的索引)只是属性中字符串值的索引。也就是说,如果你想要在 clsLabel 上面返回的类标签的字符串表示,那么你可以像这样打印它:
System.out.println(clsLabel + " -> " + unlabeled.classAttribute().value((int) clsLabel));