2

在 weka 中,如何检查诱导树是否过拟合训练数据?

编辑:

所以现在这些是我的随机森林分类器建立在一个大训练集和一个小得多的验证集(根据大训练集的类比动态生成)的结果。

你说如果过拟合,测试集(我称之为验证集)的性能会下降很多吗?但在这种情况下,它似乎并没有下降太多。

大型训练集(25000 条记录)

=== Evaluation on training set ===
=== Summary ===

Correctly Classified Instances       24849               99.3563 %
Incorrectly Classified Instances       161                0.6437 %
Kappa statistic                          0.9886
Mean absolute error                      0.0344
Root mean squared error                  0.0887
Relative absolute error                 30.31   %
Root relative squared error             37.2327 %
Total Number of Instances            25010     

验证集(IID?)(5000 条记录)

=== Evaluation on training set ===
=== Summary ===

Correctly Classified Instances        4951               99.02   %
Incorrectly Classified Instances        49                0.98   %
Kappa statistic                          0.9827
Mean absolute error                      0.0402
Root mean squared error                  0.0999
Relative absolute error                 35.269  %
Root relative squared error             41.8963 %
Total Number of Instances             5000     
4

2 回答 2

1

如果我没有错,那么上面显示的关于准确性的输出结果是指在完整数据集(培训)上评估您的分类器,而不是关于对任何测试数据进行分类,以获得您需要的完整准确性结果使用训练/测试拆分,或者您可以使用外部测试拆分,这将为分类器的结果提供一些更好的想法。

于 2014-01-23T10:23:44.280 回答
0

简单的。使用完全独立的测试集。也就是说,使用不包含与训练集相同的实例的测试集。不要您的训练数据使用交叉验证或任何其他测试方法。

注意:默认情况下,Weka 的决策树使用剪枝。也就是说,他们试图通过使用统计技术在达到真正的叶节点之前修剪树来概括树(阅读:防止过度拟合),当没有统计上的充分理由来制作额外的决策节点时。真正了解决策树是否过度拟合您的训练数据的唯一方法是检查IID测试集。如果过度拟合,那么在对训练集进行交叉验证或其他测试时会得到很好的结果,但在对单独的 IID 测试数据进行测试时会得到糟糕的结果。

于 2013-05-31T06:55:17.777 回答