平时会用到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. MeteoInfoLab脚本示例:Streamline流线图

    绘制Stramline流线图的函数是streamline,需要两个变量(U/V分量或者风向/风速).脚本程序: f = addfile('D:/Temp/GrADS/model.ctl') u = f ...

  2. java中文件是否为空

    在File类中并没有提供判断文件是否为空的方法,但可以借助length()方法的返回值进行判断.如果文件不存在或文件为空时,length()方法返回0. File file = new File(&q ...

  3. localStorage使用小结

    一.什么是localStorage.sessionStorage 在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题 ...

  4. pytest文档44-allure.dynamic动态生成用例标题

    前言 pytest 结合 allure 描述用例的时候我们一般使用 @allure.title 和 @allure.description 描述测试用例的标题和详情. 在用例里面也可以动态更新标题和详 ...

  5. trade可撤销贪心正确性证明

    鉴于tarde这道题正解过于好写,导致我对这个诡异的贪心的正确性产生了疑问,所以花了2h的时间与同机房神犇M-Blanca,Midoria7,goote~进行讨论,最后与goote~犇犇各得出了一个正 ...

  6. python 爬虫可视化函数,可以先看看要爬取的数据是否存在

    import requests url = "http://www.spbeen.com" headers = { "User-Agent":"tes ...

  7. 【git冲突解决】: Please commit your changes or stash them before you merge.

    刚刚使用 git pull 命令拉取代码时候,遇到了这样的问题: error: Your local changes to the following files would be overwritt ...

  8. s == t 何解?

    Integer s=new Integer(9); Integer t=new Integer(9); Long u=new Long(9);     (s==t) 这个是错的,只要有new这个关键字 ...

  9. v s

    关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且只能修改变量,而synchronized可以修饰方法,以及代码块.             ...

  10. Graph-GraphSage

    MPNN很好地概括了空域卷积的过程,但定义在这个框架下的所有模型都有一个共同的缺陷: 1. 卷积操作针对的对象是整张图,也就意味着要将所有结点放入内存/显存中,才能进行卷积操作.但对实际场景中的大规模 ...