scikit-learn官网文档翻译 1.6Nearest Neighbors


1.6.2最近邻分类

基于邻居的分类是一类基于实例的非生成学习:它不试图去构建一个通用的模型,而只是简单的存储训练数据的实例。分类决策简单的由最近邻多数表决得到。

scikit-learn实现了两种不同的最近邻分类

器:KNeighborsClassifier(well kown of KNN)RadiusNeighborsClassifier中基于训练样本点的曲率半径(由用户决定的浮点数)固定。

knn:k值的最优解高度依赖于数据。通常情况下,越大的k值越能够压制噪声的影响,但是会使分类边界不明显。

在数据不是均匀采样的情况下,RadiusNeighborsClassifier中的基于曲率半径的邻居分类算法can be a better choice。用户指定固定的radius  r,,以至于邻居稀疏的点会使用更少的邻居用于分类。

基本的最近邻分类使用均匀的权值。但是,在某些情况下,最好给邻居赋以权重,由此更近的邻居对拟合可以有更多的贡献。这可以通过weight关键字来实现。 The default value,weights = 'uniform', assigns uniform weights to each neighbor. weights = 'distance'给..

an example of classification using nearest neighbors.


1.6.4最近邻算法

1.6.4.1暴力算法

最近邻的快速计算式机器学习领域的一大热点。最朴素的搜索算法实现包括暴力计算数据集中所有点对的距离:对N个D维的样本,算法复杂度达到O[DN^2]。有效的暴力邻居搜索对小数据集来说十分有竞争力。algorithm = 'brute'

1.6.4.2 K-D树

一说到提高计算效率,各种基于树的数据结构就会被提及。一般来说,就是通过有效的编码设计减少所需的计算次数。基本思想就是如果A、B距离远,同时B、C距离近,那么A、C肯定远,就不要再计算A、C之间的距离了。由此,计算复杂度可以减少到O[DNlog(N)],甚至更低。

早期通过KD tree来利用这个特性。algorithm = 'kd_tree'

1.6.4.3 Ball树

为了减少KD树在高纬度的低效率,提出了ball tree。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值