WEKA:从classifyInstance获取课程,为什么这是错的

时间:2015-11-23 11:46:34

标签: java weka j48

我使用WEKA Java Api训练和创建J48模型。 然后,我使用classifyInstance()来分类我的实例。 但结果是错误的。 我的代码ID如下:

    Instances train = reader.getDataSet();
    Instances test = reader_test.getDataSet();

    train.setClassIndex(train.numAttributes() - 1);
    Classifier cls = new J48();
    cls.buildClassifier(train);

    test.setClassIndex(test.numAttributes() - 1);

    for(int i = 0; i < test.numInstances(); i++){
        Instance inst = test.instance(i);
        double result = cls.classifyInstance(inst);
        System.out.println(train.classAttribute().value((int)r));
    }

结果始终等于0.0

最后,我在test.setClassIndex()之前使用test.insertAttributeAt()。 如下:

test.insertAttributeAt(train.attribute(train.numAttributes() - 1), test.numAttributes());

结果是正确的。我很惊讶! 但是,大多数文档都没有使用inserAttribute的函数。 我想明白为什么结果突然变得正确。

0 个答案:

没有答案