简单粗暴理解与实现机器学习之K-近邻算法(二):k近邻算法api初步使用、Scikit-learn工具、K-近邻算法API、案例

K-近邻算法

学习目标

  • 掌握K-近邻算法实现过程
  • 知道K-近邻算法的距离公式
  • 知道K-近邻算法的超参数K值以及取值问题
  • 知道kd树实现搜索的过程
  • 应用KNeighborsClassifier实现分类
  • 知道K-近邻算法的优缺点
  • 知道交叉验证实现过程
  • 知道超参数搜索过程
  • 应用GridSearchCV实现算法参数的调优

1.2 k近邻算法api初步使用

在这里插入图片描述

机器学习流程复习:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-66eBwTgg-1583241663629)(../images/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E6%B5%81%E7%A8%8B%E5%B0%8F%E7%BB%93.png)]

  • 1.获取数据集
  • 2.数据基本处理
  • 3.特征工程
  • 4.机器学习
  • 5.模型评估

1 Scikit-learn工具介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2IgDlCDk-1583241663630)(../images/scikitlearn.png)]

  • Python语言的机器学习工具
  • Scikit-learn包括许多知名的机器学习算法的实现
  • Scikit-learn文档完善,容易上手,丰富的API
  • 目前稳定版本0.19.1

1.1 安装

pip3 install scikit-learn==0.19.1

安装好之后可以通过以下命令查看是否安装成功

import sklearn
  • 注:安装scikit-learn需要Numpy, Scipy等库

1.2 Scikit-learn包含的内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-atNgTPiy-1583241663630)(../images/sklearn%E5%8C%85%E5%90%AB%E5%86%85%E5%AE%B9.png)]

  • 分类、聚类、回归
  • 特征工程
  • 模型选择、调优

2 K-近邻算法API

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

3 案例

3.1 步骤分析

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

3.2 代码过程

  • 导入模块
from sklearn.neighbors import KNeighborsClassifier
  • 构造数据集
x = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
  • 机器学习 – 模型训练
# 实例化API
estimator = KNeighborsClassifier(n_neighbors=2)
# 使用fit方法进行训练
estimator.fit(x, y)

estimator.predict([[1]])

4 小结

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

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

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

  • 实现流程

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

    2)按距离递增次序排序

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

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9WJ7RlKp-1583241663631)(../images/knn%E5%B0%8F%E7%BB%93.png)]

  • 问题

1.距离公式,除了欧式距离,还有哪些距离公式可以使用?

2.选取K值的大小?

3.api中其他参数的具体含义?

发布了580 篇原创文章 · 获赞 781 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_35456045/article/details/104641831