在决策树J48的例子中,当我们说树被修剪或未修剪时,有什么区别?Weka中的修剪和未修剪的树是什么?
7
A
回答
14
未修剪的树木较大。会发生什么,基本上树是根据实现的算法创建的,如果启用修剪,则额外的步骤将查看可以删除哪些节点/分支,而不会影响性能太多。
修剪背后的想法是,除了让树更易于理解,您可以减少过度训练数据的风险。也就是说,能够将训练数据(几乎)完全分类,但没有别的,因为树不是学习基本概念,而是学习了训练数据固有的和特定的属性。
1
鉴于Weka的是机器学习套件,听起来这是什么原因,他们指的是:
http://en.wikipedia.org/wiki/Pruning_(decision_trees)
总之决策树的修剪似乎是去除可能决定其没有多少好处。
但是,我没有使用weka,我不熟悉它。推迟其他答案,看看他们说的话是否有意义。
5
我想补充以下内容给拉尔斯的答案。采取从以下link
许多算法试图“修剪”,或简化其结果。修剪产生更少,更容易解释的结果。更重要的是,修剪可以作为一种工具来纠正潜在的过度拟合。 ...
J48采用两种修剪方法。
第一个被称为子树替换。这意味着决策树中的节点可能会被替换为一个叶 - 基本上减少了沿某个路径的测试次数。这个过程从完全形成的树的叶子开始,向后朝向根。
在J48中使用的第二种类型的修剪被称为子树提升。在这种情况下,节点可以向上移动到树的根部,替换沿途的其他节点。子树通常对决策树模型的影响可以忽略不计。通常没有明确的方法来预测该选项的实用性,尽管如果诱导过程花费很长时间,尝试关闭它可能是明智的。这是因为子树的提升在计算上可能有些复杂。
相关问题
- 1. 更改树和修剪
- 2. 决策树修剪
- 3. 修剪决策树
- 4. 二叉树的修剪数
- 5. 修剪和WhiteSpaceTrimmer
- 6. PHP修剪不修剪的空间
- 7. 修剪C++决策树
- 8. 如何修剪R中的树?
- 9. 如何修剪python中的子树
- 10. CString'修剪':不是会员,为什么?
- 11. 修剪的NSString
- 12. java中的剪裁修剪网址
- 13. 可以在scikit-learn中修改/修剪学过的树吗?
- 14. CGImage的修剪alpha
- 15. 修剪()FormCollection值
- 16. 修剪浮动
- 17. 多行修剪
- 18. 修剪BOLD_CLOCKLOG表
- 19. Swift NSAttributedString修剪
- 20. 修剪算法
- 21. 修剪与FILE_IGNORE_NEW_LINES
- 22. 修剪串
- 23. 修剪文字
- 24. 修剪字符和修剪字符串 - Python
- 25. Cassandra中的修剪栏
- 26. python中的alpha beta修剪
- 27. TextBlock中的StringFormat修剪零
- 28. Linq中的左修剪
- 29. 为什么String.Trim不修剪分号?
- 30. scipy修剪树状图(层次聚类)
第一句可能是错的。未修剪的树木*较大*,对吗? – stackoverflowuser2010 2012-08-07 21:54:37
哎呀,对,对不起。我会改变这一点。 – 2012-08-08 08:01:37