我正在研究不同的数据挖掘技术,并遇到了一些我无法弄清楚的事情。 如果任何人有任何想法会很棒。
在哪种情况下,最好使用决策树和其他案例Naive Bayes分类器?
为什么在某些情况下使用其中一种?而另一个在不同的情况下? (通过查看其功能,而不是算法)
有人对此有一些解释或参考吗?
答案 0 :(得分:137)
决策树非常灵活,易于理解且易于调试。他们将处理分类问题和回归问题。因此,如果您尝试预测分类值(如红色,绿色,向上,向下),或者如果您正在尝试预测连续值,如2.9,3.4等决策树将处理这两个问题。可能是决策树最酷的事情之一是他们只需要一个数据表,他们将直接从该数据构建分类器,而无需进行任何前期设计工作。在某种程度上,不重要的属性不会被选为分裂,并且最终会被修剪,因此它非常容忍无意义。要开始设置并忘掉它。
然而,不利方面。简单的决策树倾向于过度拟合训练数据,因此其他技术意味着您通常必须进行树修剪并调整修剪程序。您没有任何前期设计成本,但您可以通过调整树木性能来支付这笔费用。简单的决策树也将数据划分为正方形,因此围绕事物构建集群意味着它必须分裂很多以包含数据集群。分裂很多会导致复杂的树木,并且会增加您过度拟合的可能性。高大的树木会被修剪回来,所以当您可以围绕数据中的某些特征构建群集时,它可能无法在修剪过程中存活。还有其他一些技术,例如代理分割,它可以让您一次分割几个变量,在空间中创建不是水平或垂直的分割(0 <斜率&lt; infinity)。很酷,但是你的树开始变得难以理解,并且实现这些算法很复杂。其他技术,如增强和随机森林决策树可以很好地执行,有些人认为这些技术对于从决策树中获得最佳性能至关重要。同样,这增加了更多的东西来理解和使用来调整树,从而实现更多的东西。最后,我们添加到算法中的越多,使用它的障碍就越大。
Naive Bayes要求您手动建立分类。没有办法只是在其上抛出一堆表格数据,并选择它将用于分类的最佳功能。挑选哪些特色重要取决于您。决策树将从表格数据中为您选择最佳功能。如果朴素贝叶斯有一种方法可以选择功能,那么你就会越来越接近使用相同的技术来让决策树像那样工作。提出这一事实意味着您可能需要将Naive Bayes与其他统计技术相结合,以帮助指导您使用决策树进行哪些功能最佳分类。天真的贝叶斯将作为连续分类器回答。有一些技术可以使它适应分类预测,但是它们会根据概率来回答,例如(A 90%,B 5%,C 2.5%D 2.5%)贝叶斯可以表现得相当好,并且它几乎不会过度拟合因此,不需要修剪或处理网络。这使得它们实现的算法更简单。然而,它们更难以调试和理解,因为它的所有概率都会增加1000倍,所以你必须小心测试它做你期望的事情。当训练数据不包含所有可能性时,朴素贝叶斯确实很好,因此在数据量较少的情况下它非常好。与Naive Bayes相比,决策树可以更好地处理大量数据。
Naive Bayes在机器人和计算机视觉中经常使用,并且很好地完成了这些任务。在这些情况下,决策树的表现非常糟糕。通过查看数以百万计的扑克手来教授决策树以识别扑克手牌的做法非常糟糕,因为皇室冲洗和四边形发生得太少,经常被修剪掉。如果它从生成的树中被修剪掉,它将错误地分类那些重要的手(从上面回忆高大的树木讨论)。现在想想你是否正在尝试使用它来诊断癌症。巨大的癌症并没有在人群中发生,并且更容易被修剪。好消息是,这可以通过使用砝码来处理,因此我们对获胜的手进行加权,或者让癌症高于失去的手或者没有癌症,并将其提升到树上,这样它就不会被剔除。同样,这是将结果树调整到我之前讨论过的情况的一部分。
决策树很简洁,因为它们告诉您哪些输入是输出的最佳预测器,因此决策树通常可以指导您查找输出的给定输入与该关系的强度之间是否存在统计关系。通常,生成的决策树不如它描述的关系重要。因此,当您了解数据时,决策树可以用作研究工具,以便您可以构建其他分类器。
如果您在使用决策树与朴素贝叶斯之间进行切割以经常解决问题,那么最好对每个问题进行测试。构建决策树并构建一个朴素的贝叶斯分类器,然后使用您拥有的培训和验证数据进行拍摄。哪个表现最好将更有可能在现场表现更好。并且最好将每一个投射到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,Decision Trees,C4.5和SVM在大多数测试中表现都很好。 http://www4.ncsu.edu/~arezaei2/paper/JCIT4-184028_Camera%20Ready.pdf
算法的另一个比较 - Boosted Decision Trees和随机排在榜单中间的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