平时会用到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. Windows下CertUtil校验和编码文件

    目录 前言 CertUtil计算文件hash 计算MD2 计算MD4 计算MD5 计算SHA1 计算SHA256 计算SHA384 计算SHA512 文件base64编码 文件base64解码 文件h ...

  2. 【找规律】ARC 066D Xor Sum AtCoder - 2272

    题目大意 给出一个整数\(n\),已知\(0\le u,v\le n\),求满足\(a\ xor\ b=u\)且\(a+b=v\)的\(a.b\)对数 样例1输入 3 样例1输出 5 /* u=0,v ...

  3. Zookeeper(1)---初识

    一.ZK简述 Zookeeper,它是一个分布式程序的协调服务,它主要是用来解决分布式应用中的一些数据管理问题,比如集群管理,分布式应用配置,分布式锁,服务注册/发现等等. 它是一个类似于文件系统的树 ...

  4. lumen 添加配置

    app同级目录新建config目录 添加配置文件 bootstrap/app.php里面加载 $app->configure('options');使用 $router->get('/', ...

  5. xpath教程-逐层检索和全局检索 转

    逐层检索和全局检索 布啦豆 11203   本节主要介绍用xpath来描述html的层级关系 主要使用到的知识点如下: 单独的一个点 .,表示当前位置 两个点 ..,表示上一级父标签的位置 单独的一个 ...

  6. C++学习---顺序表的构建及操作

    #include<iostream> #include<fstream> using namespace std; #define MAXLEN 100 //定义顺序表 str ...

  7. 零基础了解Python的用途

    在我们学习Python之前,我们肯定首先要了解Python它到底是什么,Python到底可以做什么?当然对于现在的社会来讲Python的热度毋庸置疑,现在国内,不仅考国家二级计算机证需要学习Pytho ...

  8. 一份超全的Python学习资料汇总

    一.学习Python必备技能图谱二.0基础如何系统学习Python?一.Python的普及入门1.1 Python入门学习须知和书本配套学习建议1.2 Python简史1.3 Python的市场需求及 ...

  9. 实战四:Gateway网关作全局路由转发

    Gateway网关的作用主要是两个:路由转发,请求过滤.此篇讲的是路由转发,下篇介绍请求过滤. 一,创建网关module,添加依赖 1,new -> module -> maven 或直接 ...

  10. Libevent库基础(1)

    1.创建 eevent_base struct event_base *base = event_base_new(); 2.创建 事件event struct event *ev; struct e ...