sklearn.neighbors.KNeighborsClassifier的k-近邻算法使用介绍

class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights=’uniform’, algorithm=’auto’, leaf_size=30, 
p=2, metric=’minkowski’,
metric_params=None, n_jobs=None, **kwargs)

Source code:https://github.com/scikit-learn/scikit-learn/blob/1495f6924/sklearn/neighbors/classification.py#L23

1,KNeighborsClassifier参数介绍

n_neighbors: int,默认值为5

  表示k-nn算法中选取离测试数据最近的k个点,

weight: str or callable,默认值为uniform

  表示k近邻点都分类结果的影响,一般的情况下是选取k近邻点中类别数目最多的作为分类结果,这种情况下默认k个点的权重相等,但在很多情况下,

  k近邻点权重并不相等,可能近的点权重大,对分类结果影响大。

  默认值为uniform,还可以是distance和自定义函数

  • 'uniform':表示所有点的权重相等
  • 'distance':表示权重是距离的倒数,意味着k个点中距离近的点对分类结果的影响大于距离远的点
  • [callable]:用户自定义函数,接受一个距离数组,返回一个同维度的权重数

algorithm:{'ball_tree','kd_tree','brute','auto'}

  计算找出k近邻点的算法

  • 'ball_tree':使用BallTree维数大于20时建议使用
  • 'kd_tree':使用KDTree,原理是数据结构的二叉树,以中值为划分,每个节点是一个超矩形,在维数小于20是效率高
  • 'brute':暴力算法,线性扫描
  • 'auto':自动选取最合适的算法

  note:在稀疏的输入数据上拟合,将使用'brute'覆盖此参数

leaf_size:int,默认值为30

  用于构造BallTree和KDTree

  leaf_size参数设置会影响树构造的树构造和询问的速度,同样也会影响树存储需要的内存,这个值的设定取决于问题本身

p:int,默认值为2

  • 1:使用曼哈顿距离进行度量
  • 2:使用欧式距离进行度量

metric string or callable, 默认使用'minkowski'(闵可夫斯基距离),度量函数

 

  其中p是一个变参数,也就是上一个介绍的参数p

  当p=1时,就是曼哈顿距离

  当p=2时,就是欧氏距离

  当p→∞时,就是切比学夫距离

metric_params dict, 默认为None

  度量函数的其他关键参数,一般不用设置

n_jobs int or None, 默认None

  用于搜索k近邻点并行任务数量,-1表示任务数量设置为CPU的核心数,即CPU的所有core都并行工作,不会影响fit(拟合)函数

 

 

  

  

 

转载于:https://www.cnblogs.com/YukiNote/p/11381246.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值