sklearn.neighbors.KNeighborsClassifier(k近邻分类器)

KNeighborsClassifier参数说明KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None, **kwargs)

n_neighbors:所选用的近邻数,相当于K.

weights:预测的权函数,概率值

     weights的参数设置

        ‘uniform’:同一的权重,即每个邻域中的所有点都是平均加权的。

        ‘distance’ :这种情况下,距离越近权重越大,反之,距离越远其权重越小。

         [callable](可调用):用户定义的函数,它接受一个距离数组,并返回一个包含权重的相同形状的数组

algorithm :用于计算最近邻居的算法,。有{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}

         ‘auto’      :根据样本数据自动刷选合适的算法。

         ‘ball_tree’:构建“球树”算法模型。

         ‘kd_tree’ :‘’kd树‘’算法。

         ‘brute’     :使用蛮力搜索,即或相当于Knn算法,需遍历所有样本数据与目标数据的距离,进而按升序排序从而选取最近的K个值,采用投票得出结果。

leaf_size叶的大小,针对算法为球树或KD树而言。这个设置会影响构造和查询的速度,以及存储树所需的内存。最优值取决于问题的性质。

metric:用于树的距离度量。默认度量是Minkowski,p=2等价于标准的欧几里德度量。有关可用度量的列表,可以查阅距离度量类的文档。如果度量是“预先计算的”,则假定X是距离矩阵,在拟合期间必须是平方。

p:Minkowski度量参数的参数来自sklearn.emeics.pairwise.pairwise_距离。当p=1时,这等价于使用曼哈顿距离(L1),欧几里得距离(L2)等价于p=2时,对于任意的p,则使用Minkowski_距离(L_P)。

metric_params:度量函数的附加关键字参数,设置应为dict(字典)形式。

n_jobs:要为邻居搜索的并行作业的数量。None指1,除非在 joblib.parallel_backend背景。-1意味着使用所有处理器,若要了解相关的知识应该具体查找一下。

方法:

fit(self, X[, y])

以X为训练数据,y为目标值拟合模型

get_params(self[, deep])

获取此估计器的参数。

kneighbors(self[, X, n_neighbors, …])

找到点的K邻域。

kneighbors_graph(self[, X, n_neighbors, mode])

计算X中点的k-邻域(加权)图

predict(self, X)

预测提供的数据的类标签

predict_proba(self, X)

返回测试数据X的概率估计。

score(self, X, y[, sample_weight])

返回给定测试数据和标签的平均精度。

set_params(self, \*\*params)

设置此估计器的参数。


KNeighborsClassifier:

from sklearn.neighbors import KNeighborsClassifier
import numpy as np
import pandas as pd
dataset = pd.read_csv('f:pycharm data/colors.csv',dtype = np.str)
#取所有特征列
x = dataset.iloc[:,:-1]
#取标签列
y = dataset.iloc[:,-1]
#建立模型
model = KNeighborsClassifier(3)
#训练模型
model.fit(x,y)
#预测
predict_data = [[3,3,2],
[1,3,2],
[5,2,5]]
result = model.predict(predict_data)
print(result)
posted @ 2019-12-27 13:31  明月游星空  阅读(6093)  评论(0编辑  收藏  举报