我有一个对象实例,它是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?
答案 0 :(得分:1)
对于你的第一个问题: 如果您有标记的测试集,我认为第二种方式更好,因为您还可以在测试实例也有标签时评估您的模型。省略标签不是必需的,因为在分类过程中模型不会使用它。
对于你的第二个问题,绝对足以将classifyInstance
的双值转换为:
String prediction = train.classAttribute().value((int) classifier.classifyInstance(testInstance));