我正在对不同的数据挖掘技术进行一些研究,并遇到了一些我无法弄清楚的事情。如果有人有任何想法,那就太好了。
在哪些情况下使用决策树更好,而在其他情况下使用朴素贝叶斯分类器更好?
为什么在某些情况下使用其中之一?而另一个在不同的情况下?(通过查看其功能,而不是算法)
有人对此有一些解释或参考吗?
我正在对不同的数据挖掘技术进行一些研究,并遇到了一些我无法弄清楚的事情。如果有人有任何想法,那就太好了。
在哪些情况下使用决策树更好,而在其他情况下使用朴素贝叶斯分类器更好?
为什么在某些情况下使用其中之一?而另一个在不同的情况下?(通过查看其功能,而不是算法)
有人对此有一些解释或参考吗?
决策树非常灵活、易于理解且易于调试。他们将处理分类问题和回归问题。因此,如果您尝试预测(红色、绿色、向上、向下)之类的分类值,或者您尝试预测 2.9、3.4 等连续值,决策树将处理这两个问题。决策树最酷的事情之一可能是它们只需要一个数据表,并且他们将直接从该数据构建一个分类器,而无需进行任何前期设计工作。在某种程度上,无关紧要的属性不会被选为拆分,最终会被修剪,因此它非常容忍废话。开始它设置它并忘记它。
然而,不利的一面。简单的决策树更倾向于过度拟合训练数据,因此其他技术意味着您通常必须进行树修剪并调整修剪过程。您没有任何前期设计成本,但您将在调整树木性能时收回成本。此外,简单的决策树将数据划分为正方形,因此围绕事物构建集群意味着它必须拆分很多以包含数据集群。拆分很多会导致复杂的树并增加您过度拟合的可能性。高大的树会被修剪掉,因此虽然您可以围绕数据中的某些特征构建集群,但它可能无法在修剪过程中存活下来。还有其他技术,例如代理拆分这让您可以一次沿多个变量拆分,从而在空间中创建既不是水平也不是垂直的拆分( 0 < slope < infinity )。很酷,但是你的树开始变得更难理解,而且实现这些算法也很复杂。提升和随机森林决策树等其他技术可以表现得很好,有些人认为这些技术对于从决策树中获得最佳性能至关重要。这又增加了更多的东西来理解和使用来调整树,因此还有更多的东西需要实现。最后,我们向算法添加的越多,使用它的障碍就越高。
朴素贝叶斯要求您手动构建分类。没有办法只是扔一堆表格数据并让它选择它将用于分类的最佳特征。选择重要的功能取决于您。决策树将从表格数据中为您选择最佳特征。如果朴素贝叶斯有办法选择特征,那么您将接近使用使决策树像那样工作的相同技术。给出这个事实意味着您可能需要将朴素贝叶斯与其他统计技术相结合,以帮助指导您找到最适合分类的特征以及可能使用决策树的特征。朴素贝叶斯将作为连续分类器回答。有一些技术可以使其适应分类预测,但是它们会根据概率来回答,例如 (A 90%, B 5%, C 2.5% D 2. 5%)贝叶斯可以很好地执行,并且它几乎没有过度拟合,因此不需要修剪或处理网络。这使得它们更容易实现算法。然而,它们更难调试和理解,因为所有的概率都会乘以 1000 倍,所以你必须小心测试它是否符合你的预期。当训练数据不包含所有可能性时,朴素贝叶斯表现得非常好,因此它可以在数据量少的情况下非常好。与朴素贝叶斯相比,决策树在处理大量数据时效果更好。s 次,因此您必须小心测试它是否符合您的预期。当训练数据不包含所有可能性时,朴素贝叶斯表现得非常好,因此它可以在数据量少的情况下非常好。与朴素贝叶斯相比,决策树在处理大量数据时效果更好。s 次,因此您必须小心测试它是否符合您的预期。当训练数据不包含所有可能性时,朴素贝叶斯表现得非常好,因此它可以在数据量少的情况下非常好。与朴素贝叶斯相比,决策树在处理大量数据时效果更好。
朴素贝叶斯在机器人技术和计算机视觉中被大量使用,并且在这些任务上做得很好。在这些情况下,决策树的表现非常糟糕。通过查看数百万张扑克牌来教决策树识别扑克牌的效果非常糟糕,因为皇家同花顺和四边形的出现非常少,以至于经常被删掉。如果它被从生成的树中剪除,它将错误地分类那些重要的手(回想上面对高大树的讨论)。现在想想如果你想用这个来诊断癌症。癌症不会大量发生在人群中,并且更有可能被修剪掉。好消息是这可以通过使用权重来处理,因此我们将获胜的手或患有癌症的权重高于失败的手或没有癌症,这会将其提升到树上,因此它不会被修剪掉。
决策树很简洁,因为它们告诉您哪些输入是输出的最佳预测因子,因此决策树通常可以指导您查找给定输入与输出之间是否存在统计关系以及该关系的强度。生成的决策树通常不如它所描述的关系重要。因此,当您了解数据时,可以使用决策树作为研究工具,这样您就可以构建其他分类器。
如果您在使用决策树和朴素贝叶斯解决问题之间犹豫不决,通常最好测试每一个。构建一个决策树并构建一个朴素贝叶斯分类器,然后使用您拥有的训练和验证数据进行测试。哪一个表现最好将更有可能在该领域表现更好。并且将其中的每一个与 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