K-近邻算法

一、K-近邻算法

1.K-近邻算法(KNN)概念

K Nearest Neighbor算法又叫KNN算法,这个算法是机器学习当中的一个比较经典的算法,总体来说KNN算法是相对比较容易理解的算法。

  • 定义

    如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

  • 距离公式

    两个样本的距离可以通过欧式距离进行计算

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mflnXxp1-1573028004899)(file:///C:/Users/%E6%B8%85%E9%A3%8E/Desktop/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%AF%BE%E4%BB%B6/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%AE%B2%E4%B9%89/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%EF%BC%88%E7%AE%97%E6%B3%95%E7%AF%87%EF%BC%89/K-%E8%BF%91%E9%82%BB%E7%AE%97%E6%B3%95/images/1.3%20%E6%AC%A7%E5%BC%8F%E8%B7%9D%E7%A6%BB1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-65yGYumk-1573028004901)(file:///C:/Users/%E6%B8%85%E9%A3%8E/Desktop/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%AF%BE%E4%BB%B6/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%AE%B2%E4%B9%89/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%EF%BC%88%E7%AE%97%E6%B3%95%E7%AF%87%EF%BC%89/K-%E8%BF%91%E9%82%BB%E7%AE%97%E6%B3%95/images/1.4%20%E6%AC%A7%E5%BC%8F%E8%B7%9D%E7%A6%BB2.png)]

  • KNN算法流程
    • 计算已知类别数据集中的点与当前点之间的距离
    • 按距离递增次序排序
    • 选取与当前点距离最小的k个点
    • 统计前k个点所在的类别出现的频率
    • 返回前k个点出现频率最高的类别作为当前点的预测分类

其实k-近邻算法就是通过你的“邻居”来判断你属于那个类别

2.K-近邻算法API

准备:

  • 需要安装Scikit-learn工具
    • Scikit-learn是python语言的机器学习工具
    • Scikit-learn包括许多指明的机器学习算法的实现
    • Scikit-learn文档完善,容易上手,丰富的API
  • pip3 install scikit-learn==0.19.1
  • 注意:安装scikit-learn的前提需要先安装好Numpy,Scipy库

2.1 K-近邻算法的API使用

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

2.2 示例

from sklearn.neighbors import KNeighborsClassifier

x = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]

# 实例化API
estimator = KNeighborsClassifier(n_neighbors=2)
# 使用fit方法进行训练
estimatro.fit(x,y)

# 求出预测值
estimator.predict([[1]])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值