sklearn.neighbors.KNeighborsClassifier(n_neighbors=5)

  • n_neighbors:int,可选(默认= 5),k_neighbors查询默认使用的邻居数

案例

1 步骤分析

  • 1.获取数据集
  • 2.数据基本处理(该案例中省略)
  • 3.特征工程(该案例中省略)
  • 4.机器学习
  • 5.模型评估(该案例中省略)

 

2 代码过程

#机器学习中实现的过程 1、实例化一个估计器,2、使用fit方法进行训练
import sklearn
#导入模块
#sklearn的优势:1.文档多,且规范;2.包含的算法多;3.实现起来容易
#sklearn包含的内容:分类、聚类、回归;特征工程;模型选择、调优
from sklearn.neighbors import KNeighborsClassifier
#构造数据集
x = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
#机器学习 -- 模型训练
# 实例化API 
#n_neighbors=2 选定参考几个邻居,选2个邻居进行分类。由于数据比较少,选了2个
estimator = KNeighborsClassifier(n_neighbors=2)
# 使用fit方法进行训练
estimator.fit(x, y)

estimator.predict([[10]])

#预测其他值 以特征值预测实际值
ret=estimator.predict([[10]]) #特征值是两个中括号
print(ret)  #实际值
#[1]

# 预测其他值 2.001输出值是1
ret = estimator.predict([[2.001]])
print(ret)
#[1]

# 预测其他值 2.001输出值是0
ret = estimator.predict([[2]])
print(ret)
#[0]

为什么训练输入2预测的值是0;输入2.001预测的值是1。按通常理解来说,应该2的分配是1.平均分配,但是实际输出的结果却是不同的。这个则是KNN算法的弊端。解释性并不是非常强。评分整体规格化不是很高。

 

3、小结

  • K近邻 (k-Nearest Neighbors,KNN) 算法是一种分类算法,

  • 1968年由 Cover 和 Hart 提出,应用场景有字符识别、文本分类、图像识别等领域。

  • 该算法的思想是:一个样本与数据集中的k个样本最相似,如果这k个样本中的大多数属于某一个类别.

  • 实现流程

    1)计算已知类别数据集中的点与当前点之间的距离

    2)按距离递增次序排序

    3)选取与当前点距离最小的k个点

    4)统计前k个点所在的类别出现的频率

    5)返回前k个点出现频率最高的类别作为当前点的预测分类

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐