首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArrayIndexOutOfBoundsException in weka.classifiers.Classifier.classifyInstance

ArrayIndexOutOfBoundsException in weka.classifiers.Classifier.classifyInstance
EN

Stack Overflow用户
提问于 2013-05-09 16:03:41
回答 2查看 1.5K关注 0票数 0

我写过这个方法。我想写一个贝叶斯网络,但我得到了一个例外的classifyInstance()方法。

这是我的代码:

代码语言:javascript
复制
public static double bayesNet1(Dataset data, Dataset testingSet) throws Exception {

        Instances insts = convertTxtToARFF(data);
        K2 learner = new K2();
        MultiNomialBMAEstimator estimator = new MultiNomialBMAEstimator();
        estimator.setUseK2Prior(true);

        EditableBayesNet bn = new EditableBayesNet(insts);
        bn.initStructure();
        learner.buildStructure(bn, insts);
        estimator.estimateCPTs(bn);

        double error = 0;

        Instances instsTest = convertTxtToARFF(testingSet);

        for(int i=0; i<instsTest.numInstances()-1; i++) {

        weka.core.Instance inst = instsTest.instance(i);

        double  predictedValue = bn.classifyInstance(inst);

        if(inst.value(inst.classIndex())!= predictedValue)

            error++;

        }

        return error/instsTest.numInstances();
    }

这是一个例外:

weka.classifiers.bayes.net.estimate.DiscreteEstimatorBayes.getProbability(DiscreteEstimatorBayes.java:106),weka.classifiers.bayes.net.estimate.SimpleEstimator.distributionForInstance(SimpleEstimator.java:183),weka.classifiers.bayes.BayesNet.distributionForInstance(BayesNet.java:386),weka.classifiers.Classifier.classifyInstance(Classifier.java:84),ensembleClassifiersV2.EnsembleClassifierV2.bayesNet1(EnsembleClassifierV2.java:1090),ensembleClassifiersV2.EnsembleClassifierV2.performing(EnsembleClassifierV2.java:800)在ensembleClassifiersV2.EnsembleClassifierV2.main(EnsembleClassifierV2.java:1267)

有人能帮我什么忙吗?

EN

回答 2

Stack Overflow用户

发布于 2013-06-16 15:20:45

我也有同样的问题。我的错误是我没有为测试数据设置类。就这么简单。

票数 0
EN

Stack Overflow用户

发布于 2016-12-23 19:51:08

我发现,在处理标称属性时,对于许多不同的分类器,distributionForInstance()方法中通常会出现此错误。

如果是这种情况,则可能是测试数据具有一个具有训练数据所缺少的属性值的标称属性。

在这种情况下,这真的取决于你所做的事情的最佳决策是什么。也许第一步就是检查数据本身的一致性,然后再从那里开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16466143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档