Weka J48分类测试实例和返回值

时间:2016-06-04 19:04:29

标签: java weka

我有一个对象实例,它是J48树分类器的列车集。插入此对象是有效的。但是现在我需要对新数据进行分类。让我们说我在火车上有24个属性。在查询集中表示实例的最常用方法是什么?

每个实例必须具有23个属性(与标签值以外的列车集模式相同)或

使用与trainset相同的模式,将最后一个属性定义为标签,何时运行分类器,以某种方式省略标签(我对此没有确定性)?

第二个疑问出现在分类之后:

j48.classifyInstance()的返回值; 此值作为double返回,并且根据API是testset上类的标识符。但是,trainset.class.class_name_from_int的参数为int。从classifyInstance返回的double只能说0,1,... numClasses-1,我只需要转换为int或者我是否需要应用任何数学转换,如ceil或floor?

1 个答案:

答案 0 :(得分:1)

对于你的第一个问题: 如果您有标记的测试集,我认为第二种方式更好,因为您还可以在测试实例也有标签时评估您的模型。省略标签不是必需的,因为在分类过程中模型不会使用它。

对于你的第二个问题,绝对足以将classifyInstance的双值转换为:

String prediction = train.classAttribute().value((int)  classifier.classifyInstance(testInstance));