为啥 KNN 比决策树快得多?
Posted
技术标签:
【中文标题】为啥 KNN 比决策树快得多?【英文标题】:Why is KNN much faster than decision tree?为什么 KNN 比决策树快得多? 【发布时间】:2013-03-03 22:10:46 【问题描述】:有一次在面试中,我遇到了雇主的一个问题。他问我为什么 KNN 分类器比决策树快得多,例如在字母识别或人脸识别中?
当时我完全不知道。所以我想知道我应该在哪些方面比较两种分类方法的速度性能?谢谢。
【问题讨论】:
网上比较多的 【参考方案1】:考虑以下数据集:N 个样本,每个样本有 k 个属性。一般来说 : 1. naive KNN:O(1) [训练时间] + O(NK) [查询时间] = O (NK) 2. 朴素决策树:O(N^2 * K * log(N)) [training Time] + O(log(N)) [query Time] = O(N^2 * K) -- 也是查询时间,我们假设树是平衡的。 为了计算复杂性,我考虑了每个分类器的非常简单的实现。在实现 KNN 和决策树方面已经有了一些改进。
【讨论】:
非常感谢您的回答。你能解释一下每个分类器的训练时间吗?谢谢。 @Majid,您能否提供参考以供进一步阅读?以上是关于为啥 KNN 比决策树快得多?的主要内容,如果未能解决你的问题,请参考以下文章
Python分类模型实战(KNN逻辑回归决策树SVM)调优调参,评估模型——综合项目