我是数据挖掘和Weka的新手。我使用GUI在Weka中使用 J48 构建了一个分类器。当Weka完成运行时,它说:
Correctly Classified Instances 1035 - 68.543 %
Incorrectly Classified Instances 475 - 31.457 %
当从我自己的代码(使用IKVM.NET的C#)运行时,我使用相同的未标记数据集重新评估我的模型,将预测类的结果保存到ARFF文件中并计算我从1500条记录获得的结果
大约有1300条记录被正确分类,200条记录没有,这给(我认为)86%的精度测量值。
这是对的吗?为什么结果会有所不同?
答案 0 :(得分:4)
我认为你的困惑"准确性"和"精度",they are not the same thing。
在公式中:
准确度=(TP + TN)/(TP + TN + FP + FN)= #correct / #all_instances
精确= TP /(TP + FP)=#correct_positive / #classified_as_positive
如果你在两种情况下都意味着准确性(1300/1500的准确度大约是86%),那么在没有看到你的代码和GUI的日志的情况下,没有办法知道发生了什么,这可能是太多了。
最有可能的解释是,您的代码与GUI中的代码有所不同。也许是不同的随机化,不同的分裂,不同的学习参数等等。
答案 1 :(得分:4)
Weka给你的结果只是衡量正确和错误分类记录的数量,即
这不与测量精度相同。精度是衡量相关的正确分类实例的数量,即
这是一个非常具体的指标,最好与其他指标相关,例如召回和准确性。它可能不是衡量模型一般性能的最佳方法。
有关Precision和Recall的详细信息,请参阅:http://en.wikipedia.org/wiki/Precision_and_recall
尽管如此,你的数字还是没有多大意义。但是,如果不了解更多细节,可以说更多。