机器学习——K-NN算法

K-NN算法的原理以及python实现
摘要由CSDN通过智能技术生成

目录

一.  KNN的原理

二.  K-NN算法的注意事项

        1. 如何选取K值

        2. K-NN算法的优点

        3. K-NN算法的缺点

三.  算法的Python实现

        (1)用原理实现K-NN

        (2)调用sk-learn实现K-NN

一.  KNN的原理

        KNN(K近邻算法)是机器学习中常用于分类的机器学习算法。我们先思考一个问题,即假设有两个类别,即类别A和类别B。此时我们有一个新的数据点x1,那么我们要把这个新的数据点x1分到哪一类呢?是分到A还是分到B呢?问题如下图所示。

用KNN的来分类的步骤一般如下:

  • step1:选择邻居的数量K
  • step2:计算所有点与新数据点的欧式距离
  • step3:根据计算出的欧氏距离取K个最近邻的点
  • step4:统计K个最近邻的点中各个类别的点的数量
  • step5:将数据点分配给邻居数量最大的类别

根据上面的KNN的原理,我们来对上面的问题求解:

  • 首先,我们将邻居数量K设置为K = 5。
  • 接着,我们计算数据点和所有点之间的欧式距离

A点与B点欧式距离为  d = \sqrt{(x_{2} - x_{1})^{2} + (y_{2} - y_{1})^{2}}

  • 通过计算新数据点与所有点的欧式距离,我们得到与数据点最近的K(K = 5)个点

  • 如图,通过统计K近邻点的类别,我们得出靠近数据点的K(K = 5)个近邻点中,A类有3个,B类有2个,最后我们将数据点划分给A类。

二.  K-NN算法的注意事项

        1. 如何选取K值

                (1)K是一个

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值