Educode--数据挖掘算法原理与实践:k-近邻

本文深入介绍了KNN(K-最近邻)算法的基本思想和距离度量方法,包括欧氏距离和曼哈顿距离。通过实例展示了如何找出目标样本的最近k个邻居,并解释了加权投票的概念。此外,还提供了knn算法的实现步骤,用于手写数字识别,通过计算距离并进行加权投票来预测数字类别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1关:knn算法概述

任务描述

本关任务:使用python实现方法,找出目标样本最近的k个样本。

相关知识

为了完成本关任务,你需要掌握:1.knn算法思想,2.距离度量。

knn算法思想

k-近邻(k-nearest neighbor ,knn)是一种分类与回归的方法。我们这里只讨论用来分类的knn。所谓k最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最近的k个邻居来代表。

knn算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。knn方法在类别决策时,只与极少量的相邻样本有关。

如上图,当k=3时离绿色的圆最近的三个样本中,有两个红色的三角形,一个蓝色的正方形,则此时绿色的圆应该分为红色的三角形这一类。而当k=5时,离绿色的圆最近的五个样本中,有两个红色的三角形,三个蓝色的正方形,则此时绿色的圆应该分为蓝色的正方形这一类。

距离度量

我们已经知道,如何判别一个样本属于哪个类型,主要是看离它最近的几个样本中哪个类型的数量最多,则该样本属于数量最多的类型。这里,有一个问题:何为最近?

关于何为最近,大家应该自然而然就会想到可以用两个样本之间的距离大小来衡量,我们常用的有两种距离:

  • 欧氏距离:欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。

二维平面上欧式距离计算公式:

d12​=(x1(1)​−x1(2)​)2+(x2(1)​−x2(2)​)2​

n维平面上欧氏距离计算公式:

d12​=i=1∑n​(xi(1)​−xi(2)​)2​

  • 曼哈顿距离:顾名思义,在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”。

二维平面上曼哈顿距离计算公式:

d12​=∣x1(1)​−x1(2)​∣+∣x2(1)​−x2(2)​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值