【问题标题】:Decision tree vs. Naive Bayes classifier [closed]决策树与朴素贝叶斯分类器
【发布时间】:2012-05-06 06:27:01
【问题描述】:

我正在对不同的数据挖掘技术进行一些研究,但遇到了一些我无法弄清楚的事情。 如果有人有任何想法,那就太好了。

在哪些情况下使用决策树更好,而在其他情况下使用朴素贝叶斯分类器?

为什么在某些情况下使用其中之一?而另一个在不同的情况下? (通过查看其功能,而不是算法)

有人对此有一些解释或参考吗?

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于统计数据
  • 我投票结束这个问题,因为它更多地属于 datascience.stackexchange.com

标签: data-mining decision-tree bayesian-networks


【解决方案1】:

决策树非常灵活、易于理解且易于调试。他们将处理分类问题和回归问题。因此,如果您尝试预测(红色、绿色、向上、向下)之类的分类值,或者您尝试预测 2.9、3.4 等连续值,决策树将处理这两个问题。决策树最酷的事情之一可能是它们只需要一个数据表,并且他们将直接从该数据构建一个分类器,而无需进行任何前期设计工作。在某种程度上,无关紧要的属性不会被选为拆分,最终会被修剪,因此它非常容忍废话。要启动它,设置它并忘记它。

但是,不利的一面。简单的决策树倾向于过度拟合训练数据,因此其他技术意味着您通常必须进行树修剪和调整修剪过程。您没有任何前期设计成本,但您将在调整树木性能时收回成本。此外,简单的决策树将数据划分为正方形,因此围绕事物构建集群意味着它必须拆分很多以包含数据集群。拆分很多会导致复杂的树并增加您过度拟合的可能性。高大的树会被修剪掉,因此虽然您可以围绕数据中的某些特征构建集群,但它可能无法在修剪过程中存活下来。还有其他技术,例如 surrogate splits,可让您一次沿多个变量进行拆分,从而在空间中创建非水平或垂直的拆分( 0

朴素贝叶斯要求您手动构建分类。没有办法只是扔一堆表格数据并让它选择它将用于分类的最佳特征。选择重要的功能取决于您。决策树将从表格数据中为您选择最佳特征。如果朴素贝叶斯有办法选择特征,那么您将接近使用使决策树像那样工作的相同技术。给出这个事实意味着您可能需要将朴素贝叶斯与其他统计技术结合起来,以帮助指导您找到最适合分类的特征以及可能使用决策树的特征。朴素贝叶斯将作为连续分类器回答。有一些技术可以让它适应分类预测,但是他们会根据概率来回答,比如(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

【讨论】:

  • 感谢您抽出宝贵时间撰写本文。清晰明了。
  • 读者应该小心——其中一些是不正确的。例如,完全可以通过表格数据构建朴素贝叶斯模型。我上周这样做了,大约 20 分钟,在此之前已经这样做了几十次。一般而言,KNN 不会胜过所有决策树模型,甚至一般的朴素贝叶斯模型,尽管它可能适用于特定的数据集。不过,这个帖子很有用,因为懒惰的学生把它当成事实,甚至抄袭了它。他们很容易被抓住。 +1。
  • 请允许我澄清一下,我并不是说不可能从表格数据构建朴素贝叶斯 (NB) 模型,但 NB 不包含提供表格数据的算法,它会从中建立一个朴素贝叶斯模型。当您说您构建了它时,您通过查看表格数据设计了一个朴素贝叶斯模型,而不是让计算机根据表格数据为您构建朴素贝叶斯模型。 KNN 并不总是获胜,但在某些情况下,它已被证明优于两种模型。我想我应该软化语言,这样就不会有混乱。
  • 你的回答很有道理。但是你能提供一些参考吗?
  • 我添加了一些来源。我描述的关于朴素贝叶斯的大部分内容都可以在任何机器学习教科书中找到。我所声称的关于这些技术在数据集上的有效性的大部分内容都可以在随附的比较论文中看到。
猜你喜欢
  • 2011-10-20
  • 2021-10-31
  • 2017-01-10
  • 2015-08-27
  • 2018-02-06
  • 2012-07-02
  • 2018-07-17
  • 2015-06-25
相关资源
最近更新 更多