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)