Lor*_*nzo 0 precision classification machine-learning weka j48
我是数据挖掘和 Weka 的新手。我使用 GUI 在 Weka 中使用J48构建了一个分类器。当 Weka 完成运行时,它说:
Correctly Classified Instances 1035 - 68.543 %
Incorrectly Classified Instances 475 - 31.457 %
Run Code Online (Sandbox Code Playgroud)
从我自己的代码(使用 IKVM.NET 的 C#)运行时,我使用相同的未标记数据集重新评估我的模型,将预测类的结果保存到 ARFF 文件中,并计算我从 1500 条记录中获得的结果。
大约 1300 条记录被正确分类,200 条没有被正确分类,这使(我认为)精确度为 86%。
这样对吗?为什么结果会不同呢?
我认为您混淆的“准确度”和“精确度”,它们不是一回事。
在公式中:
准确度 = (TP + TN) / (TP + TN + FP + FN) = #correct / #all_instances
精度 = TP / (TP + FP) = #correct_positive / #classified_as_positive
如果您在这两种情况下都表示准确度(1300/1500 的准确度约为 86%),则无法在没有看到您的代码和 GUI 日志的情况下判断发生了什么,这可能太多了这里。
最可能的解释是您的代码执行的操作与您在 GUI 中执行的操作不同。也许不同的随机化、不同的分割、不同的学习参数等等。