- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。
想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。
5年前关闭。
Improve this question
我正在对不同的数据挖掘技术进行一些研究,但遇到了一些我无法弄清楚的事情。
如果有人有任何想法,那就太好了。
在哪些情况下使用决策树和其他情况下使用朴素贝叶斯分类器更好?
为什么在某些情况下使用其中之一?另一个在不同的情况下?
(通过查看其功能,而不是算法)
有人对此有一些解释或引用吗?
最佳答案
决策树非常灵活,易于理解且易于调试。他们将处理分类问题和回归问题。因此,如果您尝试预测分类值(例如(红色、绿色、向上、向下))或尝试预测连续值(例如 2.9、3.4 等),决策树将处理这两个问题。决策树最酷的事情之一可能是它们只需要一个数据表,并且它们将直接从该数据构建一个分类器,而无需进行任何预先设计工作。在某种程度上,无关紧要的属性不会被选为拆分,并且最终会被修剪,因此它非常容忍废话。开始设置它并忘记它。
然而,缺点。简单的决策树更倾向于过度拟合训练数据,因此其他技术意味着您通常必须进行树修剪并调整修剪过程。您没有任何前期设计成本,但您将通过调整树的性能来返回。同样简单的决策树将数据划分为正方形,因此围绕事物构建集群意味着它必须拆分很多才能包含数据集群。 split 很多会导致复杂的树并增加过度拟合的可能性。高大的树会被修剪回来,因此虽然您可以围绕数据中的某些特征构建一个集群,但它可能无法在修剪过程中幸存下来。还有其他技术,如 代理拆分 这让您可以一次拆分多个变量,从而在空间中创建非水平或垂直的拆分( 0 < 斜率 < 无穷大 )。很酷,但是你的树开始变得更难理解,而且实现这些算法很复杂。其他技术,如 boosting 和随机森林决策树可以表现得很好,有些人认为这些技术对于从决策树中获得最佳性能至关重要。同样,这增加了更多需要理解和用于调整树的内容,因此需要实现更多内容。最后,我们在算法中添加的越多,使用它的障碍就越大。
朴素贝叶斯要求您手动构建分类。没有办法只是将一堆表格数据扔给它并让它选择将用于分类的最佳特征。选择哪些功能重要取决于您。决策树将从表格数据中为您挑选最佳特征。如果朴素贝叶斯有一种选择特征的方法,您将接近使用使决策树像那样工作的相同技术。给出这个事实意味着您可能需要将朴素贝叶斯与其他统计技术相结合,以帮助指导您对哪些特征进行最佳分类以及哪些特征可以使用决策树。朴素贝叶斯将作为连续分类器回答。有一些技术可以让它适应分类预测,但是他们会根据概率来回答,比如 (A 90%, B 5%, C 2.5% D 2.5%) 贝叶斯可以表现得很好,而且它几乎不会过度拟合所以不需要修剪或处理网络。这使它们实现更简单的算法。然而,它们更难调试和理解,因为所有的概率都会乘以 1000 倍,所以你必须小心地测试它是否按照你的预期运行。当训练数据不包含所有可能性时,朴素贝叶斯表现得非常好,因此它可以很好地处理少量数据。与朴素贝叶斯相比,决策树在处理大量数据时效果更好。
朴素贝叶斯在机器人和计算机视觉中被大量使用,并且在这些任务中做得很好。在这些情况下,决策树的表现非常糟糕。通过查看数百万张扑克牌来教决策树识别扑克牌的效果非常差,因为同花顺和四边形发生的很少,因此经常被修剪掉。如果它从生成的树中被修剪掉,它将错误地分类那些重要的手(记忆上面讨论的高大树)。现在想想你是否正在尝试使用它来诊断癌症。癌症不会在人群中大量发生,而且更有可能被清除。好消息是这可以通过使用权重来处理,因此我们对获胜的手或患癌症的权重比失败的手或没有患癌症的权重更高,这会提高它的树势,因此它不会被修剪掉。同样,这是将生成的树调整到我之前讨论的情况的一部分。
决策树很简洁,因为它们告诉您哪些输入是输出的最佳预测因子,因此决策树通常可以指导您找到给定输入与输出之间是否存在统计关系以及该关系的强度。生成的决策树通常不如它所描述的关系重要。因此,当您了解数据时,决策树可以用作研究工具,以便您可以构建其他分类器。
如果您在使用决策树和朴素贝叶斯来解决问题之间做出选择,那么最好对每个问题进行测试。构建决策树并构建朴素贝叶斯分类器,然后使用您拥有的训练和验证数据进行测试。哪个表现最好,更有可能在该领域表现得更好。并且将它们中的每一个都投向 K-最近邻 (KNN) 预测器总是一个好主意,因为在某些情况下,k-nearest 已被证明可以胜过这两个预测器,并且 KNN 是一种易于实现和使用的简单算法。如果 KNN 的表现比其他两个好,那就去吧。
一些来源:
基于 CART 的决策树手册。这本书涵盖了 CART 算法,但也讨论了决策树、权重、缺失值、代理拆分、提升等。
http://www.amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418
更温和的 CART 介绍
https://www.youtube.com/watch?v=p17C9q2M00Q
算法比较 - 请注意,KNN、决策树、C4.5 和 SVM 在大多数测试中都做得很好。
http://www4.ncsu.edu/~arezaei2/paper/JCIT4-184028_Camera%20Ready.pdf
算法的另一个比较 - Boosted Decision Trees 和 random 位居榜首,KNN 居中:
http://www.cs.cornell.edu/~caruana/ctp/ct.papers/caruana.icml06.pdf
各种技术的另一个很好的总结:
http://www.quora.com/What-are-the-advantages-of-different-classification-algorithms
关于data-mining - 决策树与朴素贝叶斯分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10317885/
我是一名优秀的程序员,十分优秀!