gpt4 book ai didi

machine-learning - Weka FilteredClassifier arrayOutOfBoundsException

转载 作者:行者123 更新时间:2023-11-30 08:50:34 24 4
gpt4 key购买 nike

我尝试对以下格式的数据使用过滤后的分类器:

实数,实数,实数,...,标称

其中我有 138 个实值和一个代表该类的名义字符串。我使用 J48 作为基分类器和监督离散化过滤器,如下所示:

Filter discretize = new weka.filters.supervised.attribute.Discretize();
FilteredClassifier fc = new FilteredClassifier();
discretize.setInputFormat(m_data);

J48 ft = new J48();
ft.setOptions(wekaOptions);
fc.setFilter(discretize);
fc.setClassifier(ft);

fc.buildClassifier(m_data);

其中m_data是我的(带标签的)训练数据,设置了m_data.setClassIndex(m_data.numAttributes()-1)。这里没有问题(我可以看到)。我序列化这个模型并稍后加载它。然后我用它来分类看不见的/新的数据,如下所示:

Instance unlabeledInstance = new DenseInstance(1.0,features);
unlabeledInstance.setDataset(m_instances);
m_classifier.classifyInstance(unlabeledInstance);

其中 features 是一个 double[],它遵循输入数据的格式,但没有标称类值。这里 m_instances 只是从训练数据文件中加载m_instances.setClassIndex(m_instances.numAttributes()-1) 设置。

但是,在运行 m_classifier.classifyInstance(unlabeledInstance) 时,我收到 arrayOutOfBoundsException 错误。任何人都可以阐明这一点吗?

跟踪是:

07-13 15:15:35.383: W/System.err(30659): java.lang.ArrayIndexOutOfBoundsException: length=138; index=138
07-13 15:15:35.383: W/System.err(30659): at weka.core.DenseInstance.value(DenseInstance.java:309)
07-13 15:15:35.383: W/System.err(30659): at weka.filters.unsupervised.attribute.Discretize.convertInstance(Discretize.java:1047)
07-13 15:15:35.383: W/System.err(30659): at weka.filters.unsupervised.attribute.Discretize.input(Discretize.java:389)
07-13 15:15:35.383: W/System.err(30659): at weka.classifiers.meta.FilteredClassifier.distributionForInstance(FilteredClassifier.java:425)
07-13 15:15:35.383: W/System.err(30659): at weka.classifiers.AbstractClassifier.classifyInstance(AbstractClassifier.java:72)

看起来它期望设置类值。

最佳答案

我认为您需要从 unlabeledInstance 中删除类值(因此不需要 m_instances.setClassIndex(m_instances.numAttributes()-1) )。当 Weka 对测试实例进行分类时,它只需要功能而不需要类,因此,如果您将类保留在实例中,那么 Weka 不会期望数组中存在额外的条目,并会给出 ArrayIndexOutOfBoundsException 异常.

关于machine-learning - Weka FilteredClassifier arrayOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11518975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com