sklearn中knn分类

Nearest Neighbors Classification(1.6.2)

参数:

1、n_neighbors : int, optional (default = 5),默认使用邻居的数量。

2、weights : str or callable, optional (default=’uniform’),预测时使用的权重函数,可能的取值为:
1:‘uniform’,统一的权重。
2:‘distance’,权重是他们距离的倒数。在这种情况下,查询 点的更近的邻
居会比离得更远的邻居有更大的影响力。
3:[callable],一个用户定义的函数,它接受一个距离数组,并返 回一个包
含权重的相同形状的数组。

3、algorithm : {‘auto’,‘ball_tree’,‘kd_tree’,‘brute’}, optional,用于计算最近邻的算法。
1:‘ball_tree’对应BallTree
2:‘kd_tree’对应KDTree
3:‘brute’对应brute-force search(蛮力搜索)
4:‘auto’将尝试根据传递给fit方法的值来决定最合适的算法。
注意:在稀疏输入的情况下,请使用蛮子搜索。

4、leaf_size : int, optional (default = 30),传递给BallTree或者KDTree的叶子的数量。这可能会影响树的构建和查询的速度,以及存储树所需的内存。最优值取决于问题本身。

5、p : integer, optional (default = 2),闵可夫斯基参数,当p=1,相当于曼哈顿距离(l1),当p=2,相当于欧氏距离(l2)。对于任意的p使用闵可夫斯基距离(l_p)。

6、metric : string or callable, default‘minkowski’,度量标准。用于度量树的距离,默认的度量方法是闵可夫斯基,p=2等价于标准的欧几里得距离。(不要修改)

7、metric_params : dict, optional (default = None),度量函数的附加关键字。(不要修改)

8、n_jobs : int, optional (default = 1),多线程。

方法:
1、fit(X, y),拟合。
2、get_params([deep]),获取参数。
3、kneighbors([X, n_neighbors, return_distance]),找到一个点的k个邻居。返回每个点的邻居的索引和距离。
4、kneighbors_graph([X, n_neighbors, mode]),计算k个邻居的(加权)图。
5、predict(X),预测。
6、predict_proba(X),返回测试数据X的概率估计。
7、score(X, y[, sample_weight]),返回测试数据和给定label之间的平均精度。
8、set_params(**params),设置参数。

我做试验使用sklearn自带的手写数字识别的数据,在默认参数下正确率是98.33%。加上knn本身可以调的参数就比较少。
增加和减少邻居,正确率略有改变。
修改权重,统一/按距离,正确率没有改变。
修改算法,algorithm,正确率没有变化。
修改叶子数量,也没有发生变化。
修改p范数的值,有轻微上升和下降。

你可能感兴趣的:(sklearn中knn分类)