阿抽哥哥

2018-11-16   阅读量: 909

数据分析师 机器学习

sklearn的KNN最近邻算法中algorithm参数是啥

扫码加入数据分析学习群

Nearest Neighbor Algorithms

最近邻算法的选择可通过关键字‘algorithm’来控制,其参数有[‘auto’,‘brute’,‘kd_tree’,‘ball_tree’],默认使用‘auto’时算法尝试从训练数据中确定最佳方法。

  • Brute Force

brute forse也称暴力计算, 是最简单的近邻搜索的实现,即数据集中所有成对点之间距离的暴力计算,对于D维度中的N个样本来说,这个方法的复杂度是O[DN2]。 在小数据样本中,暴力近邻搜索是非常高效的。然而随着样本数N的增长,暴力计算方法很快变得不切实际了。

  • K-D Tree

为了解决效率低下的暴力计算方法,已经发明了大量的基于树的数据结构。k-d tree的基本思想是 若A点距离B点非常远,B点距离C点非常近,可知A点与C点很遥远,不需要明确计算它们的距离。通过这种方式,近邻搜索的计算成本可以降低为O[DNlog(N)]或更低。这对于暴力搜索在大样本数N中表现的显著改善。

  • Ball Tree

为了解决 k-d tree在高维数据上效率低下的问题,ball tree数据结构就被研发出来了。其中 k-d tree沿卡迪尔轴(即坐标轴)分割数据,ball tree在沿着一系列的超维球来分割数据。通过这种方法构建的树要比 k-d tree消耗更多的时间,但是这种方法对于高结构化的数据是非常有效的,即使在高维度上也是一样。

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 6 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子