sklearn.neighbors.KNeighborsClassifier()函数解析(最清晰的解释)
2019-08-20 09:34
4031 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/TeFuirnever/article/details/99818078
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)
参数:
-
n_neighbors
: int,optional(default = 5)
默认情况下kneighbors
查询使用的邻居数。就是k-NN的k的值,选取最近的k个点。 -
weights
: str或callable,可选(默认=‘uniform’)
默认是uniform,参数可以是uniform、distance,也可以是用户自己定义的函数。uniform是均等的权重,就说所有的邻近点的权重都是相等的。distance是不均等的权重,距离近的点比距离远的点的影响大。用户自定义的函数,接收距离的数组,返回一组维数相同的权重。 -
algorithm
: {‘auto’,‘ball_tree’,‘kd_tree’,‘brute’},可选
快速k近邻搜索算法,默认参数为auto,可以理解为算法自己决定合适的搜索算法。除此之外,用户也可以自己指定搜索算法ball_tree、kd_tree、brute方法进行搜索,brute是蛮力搜索,也就是线性扫描,当训练集很大时,计算非常耗时。kd_tree,构造kd树存储数据以便对其进行快速检索的树形数据结构,kd树也就是数据结构中的二叉树。以中值切分构造的树,每个结点是一个超矩形,在维数小于20时效率高。ball tree是为了克服kd树高纬失效而发明的,其构造过程是以质心C和半径r分割样本空间,每个节点是一个超球体。 -
leaf_size
: int,optional(默认值= 30)
默认是30,这个是构造的kd树和ball树的大小。这个值的设置会影响树构建的速度和搜索速度,同样也影响着存储树所需的内存大小。需要根据问题的性质选择最优的大小。 -
p
: 整数,可选(默认= 2)
距离度量公式。在上小结,我们使用欧氏距离公式进行距离度量。除此之外,还有其他的度量方法,例如曼哈顿距离。这个参数默认为2,也就是默认使用欧式距离公式进行距离度量。也可以设置为1,使用曼哈顿距离公式进行距离度量。 -
metric
: 字符串或可调用,默认为’minkowski’
用于距离度量,默认度量是minkowski,也就是p=2的欧氏距离(欧几里德度量)。 -
metric_params
: dict,optional(默认=None)
距离公式的其他关键参数,这个可以不管,使用默认的None即可。 -
n_jobs
: int或None,可选(默认=None)
并行处理设置。默认为1,临近点搜索并行工作数。如果为-1,那么CPU的所有cores都用于并行工作。
警告 关于最近邻居算法,如果发现两个邻居,邻居k+1和k具有相同距离但不同标签,则结果将取决于训练数据的排序。
例子:
>>> X = [[0], [1], [2], [3]] >>> y = [0, 0, 1, 1] >>> from sklearn.neighbors import KNeighborsClassifier >>> neigh = KNeighborsClassifier(n_neighbors=3) >>> neigh.fit(X, y) KNeighborsClassifier(...) >>> print(neigh.predict([[1.1]])) [0] >>> print(neigh.predict_proba([[0.9]])) [[0.66666667 0.33333333]]
k-近邻算法实现理论和代码在博客:【机器学习】《机器学习实战》读书笔记及代码:第2章 - k-近邻算法
相关文章推荐
- OpenGL ES之glUniform函数-----非常清晰的解释了glUniform的函数使用, 很不错!!!
- OpenCV的人脸检测:cvRunHaarClassifierCascade函数解析
- error LNK2019: 无法解析的外部符号 __imp__CryptCreateHash@20,该符号在函数 _MD5_Init 中被引用
- SHGetFileInfo 函数参数解释
- C++深度解析 函数对象分析 --- 重载函数调用操作符()(34)
- opencv 中关于BOW模型的实现以及相关的函数解释
- 函数调用的汇编解释
- MYSQL中用到的时间加减函数解释
- 函数优先级大于变量优先级的深入探究————浏览器的预解析过程
- gl 绘制多边形的函数解析
- XML文件的解析--非常详细的libxml库函数解释说明并附带实例
- spark各种函数解析
- cvLoadImage函数解析 cvLoadImageM()函数
- C++虚表函数解析
- DestroyWindow函数解析
- shell自定义函数及参数调用解析
- 图像绕某点旋转的矩阵的确定(getRotationMatrix2D函数解析)
- 深入解析Linux中的fork函数
- 利用分析函数改写解析
- 调用导出dll中的类成员函数 - error LNK2019: 无法解析的外部符号