决策树与KNN


15

在哪种情况下最好使用决策树,而在其他情况下使用KNN?

为什么在某些情况下使用其中之一?还有其他情况不同吗?(通过查看其功能而不是算法)

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


2
KNN并非不受监督。也许答案是在思考k均值?

2
决策树学习也不是没有监督的。en.wikipedia.org/wiki/Supervised_learning
瓦伦塔斯(Valentas)

Answers:


9

它们有不同的用途。

KNN是不受监督的,决策树(DT)受监督。(KNN是有监督的学习,而K-means是无监督的,我认为这个答案会引起一些混乱。)KNN用于聚类,DT用于分类。(两者都用于分类。

KNN确定邻域,因此必须有一个距离度量。这意味着所有功能都必须是数字的。距离度量可能会受到属性之间的比例变化以及高维空间的影响。

另一方面,DT会预测给定输入向量的类别。这些属性可以是数字的或名义的。

因此,如果要查找类似的示例,可以使用KNN。如果要分类示例,可以使用DT。


清晰度:聚类,但是围绕给定输入向量的单个k大小的聚类。所有功能都不一定是数字不一定是正确的。例如,您可以使用Jaccard相似度来定义要素标称的距离。

10
实际上,他们都受到监督。监督只是意味着学习者可以访问带有标签的训练集。无监督算法会执行诸如聚类(而非标签预测)之类的操作。
约旦A

1
你也可以用KNN分类准确基础上的大多数说明您的K邻居
Jekaterina Kokatjuhha

3
-1 knnk-means是不同的算法,不幸的是(并且错误地)这个答案确实错过了这两个过程。knn既不受监督,也不用于集群!参见问:Diff kNN和kMean
SebNag

@SebNag,是否可以说sci-kit learning的“无监督最近的邻居”部分实际上只是在变相谈论k-均值?scikit-learn.org/stable/modules/neighbors.html似乎该部分使用knn但只是用某种距离度量来确定没有标签知识的聚类。即,听起来像k-均值。
Frikster '18年

8

像分类决策树,贝叶斯,反向传播,支持向量机来的类别下的“渴望学习者”,因为他们首先建立在一个分类模型训练数据集能够实际进行分类的[看不见]从观察之前的测试数据集。现在,已学习的模型“渴望”(饥饿的人)可以对以前看不见的观察结果进行分类,因此得名。


但是,基于KNN的分类器不构建任何分类模型。它直接从训练实例(观察)中学习。仅在给出测试观察结果进行分类之后,它才开始处理数据。因此,KNN属于“懒惰学习者”方法的类别。

基于以上基本差异,我们可以得出以下结论:

  1. 由于KNN进行现场学习,因此需要频繁的数据库查找,因此在计算上可能会很昂贵。决策树分类器不需要任何查找,因为它已准备好内存中的分类模型。

  2. 由于KNN执行基于实例的学习,因此调整良好的K可以对具有任意复杂决策边界的复杂决策空间进行建模,而其他“渴望”学习者(如决策树)不容易对其进行建模。

  3. “渴望”的学习者分批工作,一次建模一组训练观察结果。因此,它们不适合增量学习。但是KNN自然是支持增量学习(数据流)的,因为它是基于实例的学习器。

  4. 此外,KNN分类器提供的测试错误率更接近贝叶斯分类器(黄金标准)。如ISLR中所引用:

贝叶斯错误率类似于不可减少的错误


4

来自Sebastian Raschka的Python机器学习

这种基于内存的方法[KNN]的主要优点是,分类器会在我们收集新的训练数据时立即进行调整。但是,不利的一面是,在最坏的情况下,用于对新样本进行分类的计算复杂度会随着训练数据集中的样本数量线性增加—除非数据集的维数(特征)很少,并且算法已使用有效数据来实现结构,例如KD树。JH Friedman,JL Bentley和RA Finkel。在对数期望时间中找到最佳匹配的算法。ACM Transactions on Mathematical Software(TOMS),3(3):209-226,1977年。此外,由于不涉及训练步骤,我们不能丢弃训练样本。因此,如果我们使用大型数据集,则存储空间可能会成为一个挑战。

但是,决策树可以快速对新示例进行分类。您只是在运行一系列布尔比较。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.