我有一个数据集,我正在使用J48
和ID3
算法在WEKA
中对其进行分类。J48
算法的输出为:
Correctly Classified Instances 73 92.4051 %
Incorrectly Classified Instances 6 7.5949 %
Kappa statistic 0.8958
Mean absolute error 0.061
Root mean squared error 0.1746
Relative absolute error 16.7504 %
Root relative squared error 40.9571 %
Total Number of Instances 79
使用ID3的输出为:
Correctly Classified Instances 79 100 %
Incorrectly Classified Instances 0 0 %
Kappa statistic 1
Mean absolute error 0
Root mean squared error 0
Relative absolute error 0 %
Root relative squared error 0 %
Total Number of Instances 79
我的问题是,如果J48
是ID3
的扩展,并且与之相比更新,那么ID3
为什么会给出比J48
更好的结果呢?
J48模型在过程中的质量更准确,基于C4.5是ID3的扩展,它考虑了不可用值、连续属性值范围、决策树的修剪、规则推导等。这种情况下的结果只反映了您使用的数据集的类型。当您需要更快/更简单的结果时,可以实现ID3,而无需考虑J48中考虑的所有其他因素。在这里查看修剪决策树和派生规则集在网络上有很多关于这些比较结果的主题资源,一旦我们知道每个分类器是如何工作的,就要学会识别在哪种情况下我们应用不同的分类器,这一点更为重要(1)
决策树更有可能面临数据过拟合的问题,在您的情况下,ID3算法面临数据过拟合的问题。这就是决策树的问题,它拆分数据,直到生成纯集。通过使用修剪,在其扩展程序J48中解决了数据过度拟合的问题。
需要说明的另一点是:您应该使用K-fold交叉验证来验证您的模型。