在决策树 J48 示例中,当我们说树修剪或未修剪时,有什么区别?
3 回答
未修剪的树更大。发生的情况是,基本上树是根据实现的算法创建的,如果启用了修剪,则额外的步骤会查看可以删除哪些节点/分支而不会对性能产生太大影响。
修剪背后的想法是,除了使树更易于理解之外,还可以降低过度拟合训练数据的风险。也就是说,能够(几乎)完美地对训练数据进行分类,但仅此而已,因为树没有学习基本概念,而是学习了训练数据固有的和特定的属性。
我想在拉斯的回答中添加以下内容。取自以下链接
许多算法试图“修剪”或简化它们的结果。修剪产生更少、更容易解释的结果。更重要的是,修剪可以用作纠正潜在过拟合的工具。...
J48 采用两种修剪方法。
第一个称为子树替换。这意味着决策树中的节点可以用叶子代替——基本上减少了沿特定路径的测试数量。这个过程从完全形成的树的叶子开始,然后向根部进行。
J48 中使用的第二种修剪称为子树提升。在这种情况下,一个节点可能会向上移动到树的根部,沿途替换其他节点。子树提升通常对决策树模型的影响可以忽略不计。通常没有明确的方法来预测该选项的效用,但如果诱导过程需要很长时间,建议尝试将其关闭。这是因为子树提升在计算上可能有些复杂。
鉴于 Weka 是一个机器学习套件,听起来他们所指的是:
http://en.wikipedia.org/wiki/Pruning_(decision_trees)
简而言之,决策树的修剪似乎是删除可能没有太多好处的决策。
但是,我没有使用过weka,对它并不熟悉。推迟到其他答案,看看他们说的是否有道理。