【问题标题】:Weka J48 Classification Test Instances and Return ValueWeka J48 分类测试实例及返回值
【发布时间】:2016-10-04 16:13:39
【问题描述】:

我有一个对象实例,它是 J48 树分类器的训练集。插入此对象正在工作。但是现在我需要对新数据进行分类。假设我在训练集上有 24 个属性。表示查询集中实例的最常用方法是什么?

每个实例必须有 23 个属性(与 trainset 模式相同,但标签值除外)或

使用与训练集相同的模式,将最后一个属性定义为标签,当它运行分类器时,不知何故省略了标签(我不确定这个)?

第二个疑惑来自于分类之后:

j48.classifyInstance()的返回值; 该值作为双精度值返回,根据 API 是测试集上类的标识符。但是,trainset.class.class_name_from_int 的参数为 int。从分类实例返回的双精度只说 0, 1, ... numClasses-1 并且我只需要转换为 int 还是需要应用任何数学转换,如 ceil 或 floor?

【问题讨论】:

    标签: java weka


    【解决方案1】:

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

    对于您的第二个问题,将classifyInstance 的双精度值转换为:

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

    【讨论】:

      猜你喜欢
      • 2015-07-02
      • 2013-12-01
      • 2017-12-08
      • 2017-06-26
      • 2013-11-03
      • 2011-12-17
      • 2015-10-21
      • 2012-03-25
      • 2021-09-03
      相关资源
      最近更新 更多