机器学习算法——k-近邻算法

前言

        K近邻算法是一种简单而有效的算法,它不需要对数据进行显式的训练,因此适用于小规模数据集和非线性问题。是学习和理解机器学习基础知识的重要算法之一,也可以作为其他机器学习算法的基准进行比较和评估。

一、k-近邻算法     

1、介绍        

        k-近邻算法(k-Nearest Neighbour algorithm),又称为KNN算法。KNN的工作原理:给定一个已知标签类别的训练数据集,输入没有标签的新数据后,在训练数据集中找到与新数据最邻近的k个实例,如果这k个实例的多数属于某个类别,那么新数据就属于这个类别。

可以简单理解为:由那些离X最近的k个点来投票决定X归为哪一类

        下面我们通过一个简单的小例子来了解一下k-近邻算法:

                                       

图1-1

        图1-1是一个很基础的knn算法模型。有两类不同的样本数据,分别用蓝色的小正方形和红色的小三角形表示,而图正中间的那个绿色的国所标示的数据则是待分类的数据。

        问题:图中的绿色的圆属于哪一类?

        如果K=3,绿色圆点的最近的3个邻居是2个红色小三角形和1个蓝色小正方形,少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于红色的三角形一类。
        如果K=5,绿色国点的最近的5个邻居是2个红色三角形和3个蓝色的正方形,还是少数从属于多数基于统计的方法,判定绿色的这个待分类点属于蓝色的正方形一类。

2、距离公式

        在实现k-近邻算法中,我们经常要算出未知类别与样本中其它已知类别的距离,将它们进行排序,然后根据k的取值来判断未知样本的类别。

        距离公式有很多个,本篇博客着重使用欧式距离公式。

欧式距离公式(Euclidean Distance)

        (1)、二维平面:

假设二维平面有两个点:a(x_{1},y_{1}),b(x_{2},y_{2})

                               

        (2)、三维平面:

假设三维平面有两个店:a(x_{1},y_{1},z_{1}),b(x_{2},y_{2},z_{1})

     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值