sklearn.neighbors.NNeighborsClassifier 详细说明
平时会用到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 详细说明的更多相关文章
- sklearn:最近邻搜索sklearn.neighbors
http://blog.csdn.net/pipisorry/article/details/53156836 ball tree k-d tree也有问题[最近邻查找算法kd-tree].矩形并不是 ...
- sklearn.neighbors.KNeighborsClassifier(k近邻分类器)
KNeighborsClassifier参数说明KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', lea ...
- sklearn.neighbors.kneighbors_graph的简单属性介绍
connectivity = kneighbors_graph(data, n_neighbors=7, mode='distance', metric='minkowski', p=2, inclu ...
- sklearn.tree.DecisionTreeClassifier 详细说明
sklearn.tree.DecisionTreeClassifier()函数用于构建决策树,默认使用CART算法,现对该函数参数进行说明,参考的是scikit-learn 0.20.3版本. ...
- python机器学习-sklearn挖掘乳腺癌细胞(五)
python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...
- Python机器学习笔记:sklearn库的学习
网上有很多关于sklearn的学习教程,大部分都是简单的讲清楚某一方面,其实最好的教程就是官方文档. 官方文档地址:https://scikit-learn.org/stable/ (可是官方文档非常 ...
- sklearn:Python语言开发的通用机器学习库
引言:深入理解机器学习并全然看懂sklearn文档,须要较深厚的理论基础.可是.要将sklearn应用于实际的项目中,仅仅须要对机器学习理论有一个主要的掌握,就能够直接调用其API来完毕各种机器学习问 ...
- sklearn异常检测demo
sklearn 异常检测demo代码走读 # 0基础学python,读代码学习python组件api import time import numpy as np import matplotlib ...
- sklearn的常用函数以及参数
sklearn可实现的函数或者功能可分为如下几个方面 1.分类算法2.回归算法3.聚类算法4.降维算法5.模型优化6.文本预处理 其中分类算法和回归算法又叫监督学习,聚类算法和降维算法又叫非监督学习 ...
随机推荐
- 【原创】有利于提高xenomai 实时性的一些配置建议
版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正. @ 目录 一.影响因素 1.硬件 2.BISO(X86平台) 3.软件 4. 缓存使用策略与GPU 二.优化措施 1. BIO ...
- Python虚拟环境操作
1.安装pip install virtualenvwrapperpip install virtualenvwrapper-win #Windows使用该命令 2.创建一个文件夹,用来保存虚拟环境目 ...
- linux磁盘空间满的处理
Java中运行SQL插入数据时报错: linux磁盘空间满处理: 1.df -h 查看磁盘空间占用,实际上是查看磁盘块占用的文件(block) 2.分别查看输入以下命令 (面对磁盘满了,通过下列命令 ...
- Python之数据类型总结
1.字符串 2.数字 3.列表 4.元组 5.字典 可变 or 不可变 1:可变:列表.字典 2:不可变:字符串,数字,元组 访问顺序 1.直接访问:数字 2.顺序访问:字符串,列表,元组 3.映射访 ...
- Vue 路由切换时页面内容刷新页面并更新数据
第二次进入页面,页面路由参数已经改变,但是页面内容不会刷新 <keep-alive>是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM <keep-aliv ...
- CTF:sctf_2019_easy_heap
这个题目当时比赛的时候靶机据说是ubuntu16.04,但是迁移到buu上就变成了ubuntu18.04,下面针对两个平台给出不同的解法,先写一下18.04下的 先来逆一下,关键点有一下几个 mmap ...
- 分布式雪花算法获取id
实现全局唯一ID 一.采用主键自增 最常见的方式.利用数据库,全数据库唯一. 优点: 1)简单,代码方便,性能可以接受. 2)数字ID天然排序,对分页或者需要排序的结果很有帮助. 缺点: 1)不同数据 ...
- Zookeeper(2)---节点属性、监听和权限
之前通过客户端连接之后我们已经知道了zk相关的很多命令(Zookeeper(1)---初识). 节点属性: 现在我们就通过stat指令来看看节点都有哪些属性,或者使用get 指令和-s参数来查看节点数 ...
- matplotlib中plt用法实例
import torch from models.models import Model import cv2 from PIL import Image import numpy as np fro ...
- lua table面向对象扩展
一 .table扩展 -- 返回table大小 table.size = function(t) local count = 0 for _ in pairs(t) do count = count ...