决策树与朴素贝叶斯分类器
我正在做一些关于不同的数据挖掘技术的研究,并且遇到了一些我无法想象的东西。 如果任何人有任何想法,将是伟大的。
在哪种情况下最好使用决策树和其他情况下的朴素贝叶斯分类器?
为什么在某些情况下使用其中之一? 另一个在不同的情况下? (通过查看其function,而不是algorithm)
任何人有关于此的一些解释或参考?
决策树非常灵活,易于理解,而且易于debugging。 他们将处理分类问题和回归问题。 所以,如果你试图预测像(红色,绿色,向上,向下)的分类值,或者如果你试图预测像2.9,3.4等连续值。决策树将处理这两个问题。 关于决策树最酷的事情之一可能是他们只需要一张数据表,他们将直接从这些数据build立一个分类器,而不需要任何前期的devise工作。 在某种程度上,不重要的属性将不会被select为分裂,最终会被修剪,因此非常容忍废话。 开始它的设置,并忘记它。
然而,不利的一面。 简单的决策树倾向于过度地适应训练数据,所以其他技术意味着您通常必须进行树修剪并调整修剪过程。 您没有任何前期devise成本,但是您将在调整树木性能方面付钱。 同样,简单的决策树会将数据划分为正方形,因此在物体周围build立集群意味着它必须分割很多以包含数据集群。 分裂很多导致复杂的树木,并提高你过度拟合的可能性。 高大的树木被修剪掉,所以你可以在数据的某个特征周围build立一个簇,在剪枝过程中可能无法存活。 还有其他的技巧,例如代理拆分 ,可以让您一次拆分多个variables,在空间中创build不是水平或垂直的拆分(0 <slope <infinity)。 很酷,但是你的树开始变得难以理解了,而且它的复杂性实现了这些algorithm。 其他技术,如提升和随机森林决策树可以performance得相当好,有些人认为这些技术对于从决策树中获得最佳性能是至关重要的。 再次,这增加了更多的东西来理解和使用调整树,因此更多的东西来实现。 最后,我们添加到algorithm越多使用它的障碍越高。
朴素贝叶斯需要你手工build立一个分类。 没有办法只是扔一堆表格数据,并select它将用于分类的最佳function。 挑选哪些function很重要取决于你。 决策树将从表格数据中为您select最佳的function。 如果有一种方法可以让朴素贝叶斯select特征,那么您将会使用相同的技术来使决策树像那样工作。 给出这个事实,这意味着您可能需要将朴素贝叶斯与其他统计技术结合起来,以帮助您指导最佳分类的特征,并使用决策树。 朴素贝叶斯将作为一个连续的分类器来回答。 有些技术可以将其应用于分类预测,但是他们会以(A 90%,B 5%,C 2.5%D 2.5%)这样的概率来回答贝叶斯可以performance得相当好,而且不会过度适应所以不需要修剪或处理networking。 这使得他们更简单的algorithm来实现。 但是,它们很难debugging和理解,因为所有的概率都乘以1000倍,所以你必须小心地testing它是否符合你的期望。 当训练数据不包含所有可能性时,朴素贝叶斯performance得相当好,所以在数据量低的情况下它可能非常好。 与朴素贝叶斯相比,决策树在大量数据下工作得更好。
朴素贝叶斯在机器人和计算机视觉中被广泛使用,并且在这些任务中performance得相当好。 在这些情况下,决策树performance很差。 教一个决策树通过查看数以百万计的手牌来识别扑克牌手是非常困难的,因为皇家冲刷和四边形发生得如此之less经常被修剪掉。 如果它被修剪掉了,那么它会错误地分类那些重要的手(回想上面讨论高大的树木)。 现在想想如果你正在试图用这个来诊断癌症。 癌症不会在人群中大量发生,并且会更容易被剪除。 好消息是,这可以通过使用重量来处理,所以我们衡量一个赢的手或癌症高于松手或没有癌症,并提高了它的树,所以它不会被删除。 再次,这是调整结果树到我前面讨论的情况的一部分。
决策树是整洁的,因为它告诉你哪些input是最好的输出预测器,因此决策树可以指导你发现给定input与输出之间是否存在统计关系,以及这种关系有多强。 通常所得到的决策树不如其描述的关系重要。 因此,在您了解您的数据时,可以使用决策树作为研究工具,以便您可以构build其他分类器。
如果你在使用决策树与朴素贝叶斯之间进行切分以解决问题,那么通常最好是testing每一个问题。 构build决策树并构build朴素贝叶斯分类器,然后使用您拥有的培训和validation数据进行拍摄。 哪一个performance最好将更有可能performance更好的领域。 对于K最近邻(KNN)预测因子来说,每个对象都是一个好主意,因为在某些情况下,k-nearest已经被certificate可以执行它们两个,KNN是一个简单的algorithm来实现和使用。 如果KNNperformance比其他两个更好。
一些来源:
基于CART的决策树手册。 这本书涵盖了CARTalgorithm,还讨论了决策树,权重,缺失值,代理拆分,增强等。http://www.amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418
CART的一个更温和的介绍https://www.youtube.com/watch?v=p17C9q2M00Q
algorithm的比较 – 注意KNN,决策树,C4.5和SVM在大多数testing中performance得相当好。 http://www4.ncsu.edu/~arezaei2/paper/JCIT4-184028_Camera%20Ready.pdf
algorithm的另一个比较 – 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