java - 使用 Weka 进行错误的类别预测

标签 java machine-learning classification weka decision-tree

我正在使用 WEKA API weka-stable-3.8.1
我一直在尝试使用J48决策树(weka 的 C4.5 实现)。 我的数据包含大约 22 个特征和一个具有 2 个可能值的标称类:
使用以下代码进行评估时:

Classifier model = (Classifier) weka.core.SerializationHelper.read(trainedModelDestination);
Evaluation evaluation = new Evaluation(trainingInstances);
evaluation.evaluateModel(model, testingInstances);
System.out.println("Number of correct predictions : "+evaluation.correct());


所有预测都是正确的。 但是当我使用以下命令单独尝试这些测试用例时:

for(Instance i : testingInstances){
    double predictedClassLabel = model.classifyInstance(i);
    System.out.println("predictedClassLabel : "+predictedClassLabel);
}


我总是得到相同的输出,即 0.0

为什么会发生这种情况?

最佳答案

如果提供的代码片段确实来自您的代码,则您似乎总是对第一个测试实例进行分类:“testingInstances.firstInstance()”。

相反,您可能想要创建一个循环来对每个测试实例进行分类。

for(Instance i : testingInstances){
    double predictedClassLabel = model.classifyInstance(i);
    System.out.println("predictedClassLabel : "+predictedClassLabel);
}

关于java - 使用 Weka 进行错误的类别预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44904420/

相关文章:

C++ 机器学习框架

c++ - Caffe 删除 .cu 实现出现编译错误

python - cv2.error (-215 :Assertion failed) reader. ptr != NULL 函数 cvDrawContours

python - 神经网络在玩具数据集上失败

python - Scikit-learn:半监督朴素贝叶斯实现可用吗?

java - 键盘输入: perform request with delay between symbols

java - 遍历具有重复值的 Map 并识别共享这些值的键

tensorflow - TF 估计器梯度增强分类器在训练时突然停止

java - 容器中的元素信息已更新,如何刷新?

java - 输出二维数组中的值不起作用