KNN文档
KNN是一种即可用于分类又可用于回归的机器学习算法。对于给定测试样本,基于距离度量找出训练集中与其最靠近的K个训练样本,然后基于这K个“邻居”的信息来进行预测。在分类任务中可使用投票法,选择这K个样本中出现最多的类别标记作为预测结果;在回归任务中可使用平均法,将这K个样本的实值输出标记的平均值作为预测结果。当然还可以基于距离远近程度进行加权平均等方法。
用法:
1
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)[source]
参数:
n_neighbors
: 整数, 可不填 (默认=5)- 默认邻近点的数量
-
weights
: 字符串或者自定义类型, 可选参数,默认=”uniform”)用于预测的权重函数。可选参数如下:
uniform
: 统一的权重. 在每一个邻居区域里的点的权重都是一样的。distance
: 权重点等于他们距离的倒数。使用此函数,更近的邻居对于所预测的点的影响更大。[callable]
: 用户可以自定义一个距离函数用来计算权重,此方法接收一个距离的数组,然后返回一个相同形状并且包含权重的数组。
-
algorithm
: {‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, 可选参数(默认为 ‘auto’)计算最近邻居用的算法:
注意 : 如果传入fit方法的输入是稀疏的,将会重载参数设置,直接使用暴力搜索。
-
leaf_size
:(叶子数量), 整数, 可选参数(默认为 30)传入BallTree或者KDTree算法的叶子数量。此参数会影响构建、查询BallTree或者KDTree的速度,以及存储BallTree或者KDTree所需要的内存大小。 此可选参数根据是否是问题所需选择性使用。
-
p
: 整数, 可选参数(默认为 2)用于Minkowski metric(闵可夫斯基空间)的超参数。p = 1, 相当于使用曼哈顿距离 (l1),p = 2, 相当于使用欧几里得距离(l2) 对于任何 p ,使用的是闵可夫斯基空间(l_p)
-
metric
:(矩阵), 字符串或者自定义类型, 默认为 ‘minkowski’用于树的距离矩阵。默认为闵可夫斯基空间,如果和p=2一块使用相当于使用标准欧几里得矩阵. 所有可用的矩阵列表请查询 DistanceMetric 的文档。
-
metric_params
:(矩阵参数),字符串或者自定义类型, 可选参数(默认为 None)给矩阵方法使用的其他的关键词参数。
-
n_jobs
: int, 可选参数(默认为 1)用于搜索邻近点的,可并行运行的任务数量。如果为-1, 任务数量设置为CPU核的数量,不会影响fit方法。
方法:
1
_init__(n_neighbors=5, weights=’uniform’, algorithm=’auto’, leaf_size=30, p=2, metric=’minkowski’, metric_params=None, n_jobs=None, **kwargs)
fit(X, y)
- 以X为训练数据,y为目标值拟合模型
get_params([deep])
- 获取拟合器的参数
-
kneighbors([X, n_neighbors, return_distance])
找到一个点的k邻域,返回每个点的索引和到相邻点的距离
n_neighbors
: 整数return_distance
:布尔值,可选。默认值为True,如果为False,则不会返回距离
返回 -
dist
:表示点的长度的数组,仅当return_distance=True时才出现 -ind
: 最近点的索引 -
kneighbors_graph([X, n_neighbors, mode])
为X中的点计算k邻域的(加权)图n_neighbors
: 整数mode
:{‘ connectivity ‘, ‘ distance ‘},可选
返回矩阵类型:‘connectivity’ 将返回带1和0的连通性矩阵,‘distance’点与点之间的欧氏距离
predict(X)
:- 预测X的类别
predict_log_proba(X)
:- 预测X为各个类别的概率对数值。
predict_proba(X)
:- 预测X为各个类别的概率值。
score(X, y[, sample_weight])
- 返回给定测试数据的平均准确度
sample_weight
:类数组,shape = [n_samples],可选
- 返回给定测试数据的平均准确度
set_params(**params)
- 设置此估计器的参数
附上scikit-learn (sklearn) 官方文档中文版
本文采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议(CC BY-NC-ND 4.0)进行许可,转载请注明出处,请勿用于任何商业用途采用。