决策树非常灵活、易于理解且易于调试。他们将处理分类问题和回归问题。因此,如果您尝试预测(红色、绿色、向上、向下)之类的分类值,或者您尝试预测 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