平时会用到sklearn.neighbors.NNeighborsClassifier函数来构建K最邻近分类器,所以这里对NNeighborsClassifier中的参数进行说明,文中参考的是scikit-learn 0.20.3版本。

NNeighborsClassifier函数中参数如下:

       n_neighbors:类别预测时,选择的最邻近数据点数量,默认为5。设置该参数时需要注意,设置得过大容易将一些较远的样本引入,造成误分类,尤其是在数据密度分布不均匀时,不过这个问题可以通过对样本施加权重来改善;设置得过小时噪声的影响就非常明显。

       weights:设置邻近范围内数据点的权重,默认是不施加权重,采用'uniform',所有数据点都一样。在施加权重时,一般可以选择 ‘distance’ 或者自定义权重的施加方式。采用‘distance’时,权重是数据点与待分类点距离的倒数,使用更多的权重函数是高斯函数,这个需要用户自定义,在自定义权重函数时,输入参数是一些列距离值,返回值是一些列权重值。

algorithm: 选择K最邻近分类器构建算法。构建K最邻近分类器的过程主要是用 ‘距离’ 的度量准则、采用合理的数据结构存储训练集,在类别预测时能够快速的搜索数据。目前常用的数据结构是 “球树(ball-tree)”、"KD树(kd-tree)",暴力搜索方然也是一种方式。ball-tree在构建时会比kd-tree要麻烦一些,因为涉及到距离的计算,但是在类别预测时,其最邻近点检索更快,且一般在高维数据中表现比较好。kd-tree采用二叉树方式存储数据,构建过程比较快,但是搜索过程麻烦,因此一般适用于数据集较小、维度较低的场合。暴力搜索一般不推荐,仅用于少量数据的情形下。该参数有4个可选值,“ball_tree”、“kd_tree”、"brute"、“auto”,brute表示暴力搜索,当设置“auto”时,会依据传入的训练数据自动选择最合适的算法。

      leaf_size:设置叶子结点个数,默认值为30。该参数用于 algorithm为ball_tree或kd_tree的情况,叶子结点数越多,则树模型深度越大,构建和搜索过程越耗时,但是分类准确率越高,因此该值如何设置需要依据具体的问题考虑。一般来说,训练数据集越大,则可以适当将该值设置大一些。

p:选用距离的计算方式,1表示使用曼哈顿距离,2表示使用欧氏距离,默认为2。对任意两个n维数据和,将p设置为任意的正整数值时,与的距离的计算方式为闵可夫斯基距离:

metric:设置距离度量方式,默认是闵可夫斯基距离。距离的度量方式有多种,应用于不同的距离,例如在文档相似性分析中,词频数据是一个稀疏数据,一般采用余弦距离度量。

    n_jobs:设置执行分类任务时的并行线程个数,主要是为了提高数据搜索效率,默认为None,表示使用1个线程,-1表示使用所有可用的线程,该参数不影响分类结果。

                            

sklearn.neighbors.NNeighborsClassifier 详细说明的更多相关文章

  1. sklearn:最近邻搜索sklearn.neighbors

    http://blog.csdn.net/pipisorry/article/details/53156836 ball tree k-d tree也有问题[最近邻查找算法kd-tree].矩形并不是 ...

  2. sklearn.neighbors.KNeighborsClassifier(k近邻分类器)

    KNeighborsClassifier参数说明KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', lea ...

  3. sklearn.neighbors.kneighbors_graph的简单属性介绍

    connectivity = kneighbors_graph(data, n_neighbors=7, mode='distance', metric='minkowski', p=2, inclu ...

  4. sklearn.tree.DecisionTreeClassifier 详细说明

    sklearn.tree.DecisionTreeClassifier()函数用于构建决策树,默认使用CART算法,现对该函数参数进行说明,参考的是scikit-learn 0.20.3版本.     ...

  5. python机器学习-sklearn挖掘乳腺癌细胞(五)

    python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...

  6. Python机器学习笔记:sklearn库的学习

    网上有很多关于sklearn的学习教程,大部分都是简单的讲清楚某一方面,其实最好的教程就是官方文档. 官方文档地址:https://scikit-learn.org/stable/ (可是官方文档非常 ...

  7. sklearn:Python语言开发的通用机器学习库

    引言:深入理解机器学习并全然看懂sklearn文档,须要较深厚的理论基础.可是.要将sklearn应用于实际的项目中,仅仅须要对机器学习理论有一个主要的掌握,就能够直接调用其API来完毕各种机器学习问 ...

  8. sklearn异常检测demo

    sklearn 异常检测demo代码走读 # 0基础学python,读代码学习python组件api import time import numpy as np import matplotlib ...

  9. sklearn的常用函数以及参数

    sklearn可实现的函数或者功能可分为如下几个方面 1.分类算法2.回归算法3.聚类算法4.降维算法5.模型优化6.文本预处理 其中分类算法和回归算法又叫监督学习,聚类算法和降维算法又叫非监督学习 ...

随机推荐

  1. vscode配置python调试仍然直接输出

    工作目录不能放在python的安装目录下

  2. 如果只推荐一本 Python 书,我要 Pick 它!

    今年二月初,我偶然看到了一条推特: <流畅的Python>一书的作者发布了一条激动人心的消息:他正在写作第二版! 如果要票选最佳的 Python 进阶类书目,这本书肯定会是得票率最高的书籍 ...

  3. springmvc maven 入门及页面拿不到controller的值 显示${message} el表达式不起作用

    1:参考https://www.cnblogs.com/zhuawang/p/5651896.html 操作完,运行,结果不是后端控制器controller返回的,是index.jsp中的. 因为执行 ...

  4. springcloud中使用dubbo开发rpc服务及调用

    spring cloud中基于springboot开发的微服务,是基于http的rest接口,也可以开发基于dubbo的rpc接口. 一,创建goodsService模块 1, 在创建的goodsSe ...

  5. Redis学习笔记(一)——安装Redis

    一.概述  Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日执行.Key-Value数据库,并提供多种语言的API. Redis是完全开源免费的,遵守BSD协议,是一 ...

  6. [分享] 通过修改CSS自定义chrome滚动条样式

    首先得说一句 我不懂CSS的写法之类的 这段CSS也是在网上找的 所以有更先进的需求的话 我肯定不能满足你们了 不好意思效果图在10楼有人上了 我这边不管怎么弄 上传图片都卡在96% 而且不翻wall ...

  7. JS常用事件的总结

    JS常用事件的总结 outsbumit     表单提交事件 onload     页面加载事件 onclick     鼠标单击某个对象事件 ondblclick     鼠标双击某个对象事件 on ...

  8. PHP定界符的用法

    当面临大段的负责的文本输入的时候,建议使用定界符. 例如: $age = 28; $str = <<<cont 第一行数据 第二行数据 特殊字符 ' " asdf abc ...

  9. java log4j 的一个bug

    java项目中使用log4j记录日志几乎成了标配, 最近一个项目中出了个问题  现象是这样的:  不连vpn程序一切正常,连上VPN启动程序 直接异常退出, 错误日志直接指向了 log4j 库 org ...

  10. 微服务通信之ribbon实现原理

    前言 上一篇我们知道了feign调用实现负载均衡是通过集成ribbon实现的.也较为详细的了解到了集成的过程.现在我们看一下ribbo是如何实现负载均衡的.写到这里我尚未去阅读源代码,我在这里盲猜一下 ...