英文官方教程链接:
https://scikit-learn.org/stable/modules/neighbors.htmlhttps://scikit-learn.org/stable/modules/neighbors.html我深知最近几次所展现的文章内容水平不行,因为我现在也不会,同时也不太明白官网到底是什么意思,后面我会结合中文教程做进一步的改进,还望谅解。
sklearn.neighbors 提供了无监督和基于近邻的监督学习方法。无监督近邻是许多其他学习方法的基础。
最近邻方法的原理是找到距离新点最近的预定义训练样本,并预测它们的标签。样本数量可以是用户定义的常量,或者根据点的局部密度而变化。一般来说,距离可以是任何度量单位,例如标准的欧几里得距离。
sklearn.neighbors.NearestNeighbors()
参数 | 描述 |
n_neighbors | int,default=5,默认使用的 neighbors 的数量 |
radius | float,default=1.0,默认使用的参数空间的范围 |
algorithm | {'auto','ball_tree','kd_tree','brute'},default='auto',用于计算最近邻的算法 |
leaf_size | int,default=30,传给 BallTree or KDTree 的叶子尺寸 |
metric | str or callable,default='minkowski',树的距离量度 |
p | int,default=2,Minkowski 量度的参数 |
metric_params | dict,default=None,度量函数的其他关键字参数 |
n_jobs | int,fault=None,neighbors 搜寻的平行 jobs 的数量 |
类属性 | |
.effective_metric_ | str,用来计算 neighbors 距离的量度 |
.effective_metric_params_ | dict,上一个的参数 |
.n_features_in_ | int,特征的数量 |
.feature_names_in_ | ndarray of shape ('n_features_in_',),特征的名称 |
.n_samples_fit_ | int,拟合数据的样本数量 |
from sklearn.neighbors import NearestNeighbors
import numpy as np
X = np.array([[-1, -1], [-2, -1], [2, 1], [3, 2]])
nbrs = NearestNeighbors(n_neighbors=1).fit(X)
distances, indices = nbrs.kneighbors(np.array([[0,0]]))
#这里需要传入的数组shape的后一个元素相同
print(distances,indices)
#[[1.41421356]] [[0]]
#第一个代表最近的距离,第二个代表最近距离在拟合数据里的元素索引,本例为第1个
官方的代码我没看懂,这是源码中另外一个例子,还是可以理解的。
sklearn.neighbors.KDTree() 和 sklearn.neighbors.BallTree() 有相似的效果。
下面还有 sklearn.neighbors.KNeighborsClassifier()、 sklearn.neighbors.KNeighborsRegressor()、 sklearn.neighbors.NeraestCentroid()、sklearn.neighbors.KNeighborsTransformer() 等,由于我的水平有限,也就不细说了,大家自己去学习一下吧。